Image coding method and image decoding method

ABSTRACT

An image coding method for improving coding efficiency by using more appropriate probability information is provided. The image coding method includes: a first coding step of coding a first set of blocks included in a first region sequentially based on first probability information; and a second coding step of coding a second set of blocks included in a second region sequentially based on second probability information. In the first coding step, the first probability information is updated depending on data of a target block to be coded, after coding the target block and before coding a next target block. In the second coding step, the second probability information is updated depending on the first probability information updated in the first coding step, before coding the first target block.

This application is a Continuation application of U.S. application Ser.No. 14/162,871, filed Jan. 24, 2014, which is a Divisional applicationof U.S. application Ser. No. 13/148,957, filed Aug. 11, 2011, which isthe U.S. National Stage of International Application PCT/JP2010/006077,filed Oct. 13, 2010, which claims priority to Japanese application JP2009-249538, filed Oct. 29, 2009, the disclosures of which are allhereby incorporated by reference in their entirety.

TECHNICAL FIELD

The present invention relates to image coding methods of coding imageincluding a plurality of blocks.

BACKGROUND ART

Conventional image coding devices for coding video divide each picturein video into macroblocks each having 16 pixels×16 pixels, and code themacroblocks. The image coding devices eventually generate a coded screamthat is compressed by the video coding. Conventional image decodingdevices decode the coded stream on a macroblock-by-macroblock basis toreproduce each picture in the video.

One of such conventional image coding methods is InternationalTelecommunication Union Telecommunication Standardization Sector (ITU-T)H. 264 standard (hereinafter, referred to as “H.264 standard”) (forexample, see Non-Patent Reference 1 and Non-Patent Reference 2). Asshown in FIG. 53A, an image coding device according to H.264 standarddivides a picture into slices, then further divides a slice intomacroblocks having 16 pixels×16 pixels, and eventually codes themacroblocks. As shown in FIG. 53B, macroblocks in each slice are codedin raster order from left to right. In addition, as shown in FIG. 53C,each slice is assigned with a start code.

An image decoding device finds such start codes from a coded stream.Thereby, the image decoding device can easily detect the beginning ofeach slice and start decoding it. It is noted that there is noinformation reference relationship between the slices. The imagedecoding device can therefore decode the slices independently from oneanother.

One of variable length coding methods defined in H.264 standard iscontext adaptive binary arithmetic coding (CABAC: hereinafter, referredto simply as “arithmetic coding”). FIG. 54 shows a block diagram of anarithmetic coding unit that codes image using the arithmetic codingdefined by H.264.

The arithmetic coding unit 100 shown in FIG. 54 initializes, at thebeginning of a target slice, a symbol occurrence probability stored in asymbol occurrence probability storage unit 102 in the arithmetic codingunit 100, by using one of predetermined three values. Updating a tableof the symbol occurrence probability (probability table), the arithmeticcoding unit 100 arithmetic-codes each slice according to an occurrenceprobability of a code in each syntax of the slice. The arithmetic codingunit 100 updates the probability table to be appropriate for targetimage. As a result, it is possible to improve coding efficiency.

Non-binary syntax elements are firstly binarized by a binarization unit101 in the arithmetic coding unit 100. Next, according to information ofneighboring macroblock(s) (neighbor information) and binary-valuedsignal data of a target macroblock, a context control unit 103 in thearithmetic coding unit 100 generates an index to be used to select asymbol occurrence probability from the symbol occurrence probabilitystorage unit 102. Then, based on the index, the context control unit 103reads an occurrence probability of binary-valued signal from the symboloccurrence probability storage unit 102.

A binary arithmetic encoder 104 in the arithmetic coding unit 100arithmetic-codes the binary-valued signal using the obtained occurrenceprobability. The context control unit 103 overwrites the symboloccurrence probability resulting from the arithmetic coding into thesymbol occurrence probability storage unit 102. Thereby, the symboloccurrence probability is updated.

The above-described image coding device using arithmetic coding canoffer high coding efficiency. However, the image coding device needs tocode macroblocks, which have been divided from image, in raster order bykeeping updating the probability table. Therefore, the above-describedimage coding device used to fail parallel image coding. As a result, theconventional image coding device has a difficulty in improvingperformance, besides a difficulty in improving operation frequency.

In order to address the drawbacks, some conventional image codingdevices divide image into slices to perform parallel image coding. Inthis case, such image coding devices cannot use spatial correlationbetween the slices. Therefore, coding efficiency is deteriorated. It isalso noted in FIG. 53B that a macroblock 13 is spatially far from amacroblock 14. Therefore, a symbol occurrence probability of themacroblock 13 would be significantly different from a symbol occurrenceprobability of the macroblock 14. Even under the situation, the imagecoding device codes the macroblocks in raster order. In raster order,the image coding device should code the macroblock 14 based on thesymbol occurrence probability of the macroblock 13. As a result, codingefficiency is deteriorated.

Among techniques conceived as image coding methods for the nextgeneration, there is a technique addressing the above problems (seeNon-Patent Reference 3). As shown in FIG. 55A, Non-Patent Reference 3discloses a technique where a picture is divided into slices called“entropy slices”. The entropy slices can be referred to by one another.More specifically, a macroblock in such a slice can refer to amacroblock in another slice beyond a border between the slices.

The use of the entropy slices allows an image coding device to refer toinformation of a neighboring macroblock beyond a slice border whenmotion vector coding or intra-picture prediction is performed. Thereby,the image coding device can improve coding efficiency using spatialcorrelation.

Moreover, if the slices are coded in the order shown in FIG. 55B,processing efficiency is improved. For example, the order in FIG. 55Ballows the lowest macroblock 5 in a slice 0 adjacent to a slice 1 to becoded earlier than the situation of using the raster order in FIG. 53B.In other words, the order in FIG. 55B enables the image coding device torefer to the slice 0 earlier to code the slice 1. As a result,processing efficiency in parallel processing is improved.

PRIOR ART Non-Patent References

-   Non-Patent Reference 1: “ITU-T H. 264 Standard, Advanced video    coding for generic audiovisual services 9. Parsing Process,    published on March 2005-   Non-Patent Reference 2: Thomas Wiegand et al., “Overview of the    H.264/AVC Video Coding Standard”, IEEETRANSACTIONS ON CIRCUITS AND    SYSTEMS FOR VIDEO TECHNOLOGY, July 2003, pp. 1-19-   Non-Patent Reference 3: Xun Guo et al., “Ordered Entropy Slices for    Parallel CABAC”, [online], ITU-T Video Coding Experts Group, Apr.    15, 2009, [searched on Oct. 28, 2009], Internet <URL:    http://wftp3.itu.int/av-arch/video-site/0904#Yok/VCEG-AK25.zip    (VCEG-AK25.doc)>

However, Non-Patent Reference 3 discloses in Chapter 2.2 that aprobability table used in arithmetic coding is initialized at thebeginning of each entropy slice. Therefore, the probability table is notupdated appropriately for a target picture. As a result, codingefficiency is deteriorated.

In addition, the coding performed according to H.264 standard describedin Non-Patent References 1 and 2 has the problem as described earlier.That is, a target macroblock is coded in raster order by using a symboloccurrence probability of a macroblock that is positioned far from thetarget macroblock. In the above situation, coding efficiency isdeteriorated.

SUMMARY OF THE INVENTION

In order to address the problems of the conventional techniques, anobject of the present invention is to provide an image coding method forimproving coding efficiency using more appropriate probabilityinformation.

In accordance with an aspect of the present invention for achieving theobject, there is provided an image coding method of coding an imagehaving a plurality of regions each including a plurality of blocks, theimage coding method including: coding a first set of blocks included ina first region of the regions sequentially based on first probabilityinformation indicating a data occurrence probability; and coding asecond set of blocks included in a second region of the regionssequentially based on second probability information indicating a dataoccurrence probability, the second region being different from the firstregion, wherein, in the coding of the first set of blocks, the firstprobability information is updated depending on data of a first targetblock to be coded among the first set of blocks, after coding the firsttarget block and before coding a second target block to be coded nextamong the first set of blocks, in the coding of the second set ofblocks, the second probability information is updated depending on dataof a third target block to be coded among the second set of blocks,after coding the third target block and before coding a fourth targetblock to be coded next among the second set of blocks, and in the codingof the second set of blocks, the second probability information isfurther updated depending on the first probability information updatedin the coding of the first set of blocks, before coding a fifth targetblock to be coded first among the second set of blocks.

Thereby, at the beginning of each of the regions in the image (in otherwords, when the first image in each of the regions in the image is to becoded), the probability information to be used in coding is updateddepending on characteristics of the image. As a result, codingefficiency is improved.

It is possible that in the coding of the first set of blocks, the firstset of blocks are sequentially arithmetic-coded based on the firstprobability information, and that in the coding of the second set ofblocks, the second set of blocks are sequentially arithmetic-coded basedon the second probability information.

Thereby, in the arithmetic coding for coding images based onprobabilities, coding efficiency is improved.

It is further possible that, in the coding of the first set of blocks,the first set of blocks are sequentially coded based on the firstprobability information, the first set of blocks being macroblocksincluded in the first region that is a slice, and that in the coding ofthe second set of blocks, the second set of blocks are sequentiallycoded based on the second probability information, the second set ofblocks being macroblocks included in the second region that is a slice.

Thereby, at the beginning of each slice in the image (in other words,when the first image in each of the regions in the image is to becoded), the probability information to be used in coding is updateddepending on characteristics of the image. In other words, the sameprobability information is used for a plurality of slices. Then,macroblocks included in a slice are coded based on updated probabilityinformation. As a result, coding efficiency is improved.

It is still further possible that, in the coding of the second set ofblocks, the second probability information is updated depending on thefirst probability information before coding the fifth target block, thefirst probability information having been updated in the coding of thefirst set of blocks depending on the data of the first target blockimmediately above the fifth target block.

Thereby, the first block in each of the regions is coded based onprobability information updated depending on a block that is immediatelyabove the first block and is spatially close to the first block. As aresult, coding efficiency is further improved.

It is still further possible that in the coding of the first set ofblocks, sub-blocks included in each of the first set of blocks aresequentially coded based on the first probability information, that inthe coding of the second set of blocks, sub-blocks included in each ofthe second set of blocks are sequentially coded based on the secondprobability information, that in the coding of the first set of blocks,the first probability information is further updated depending on dataof a first target sub-block to be coded among a first set of sub-blocksincluded in the first target block, after coding the first targetsub-block and before coding a second target sub-block to be coded nextamong the first set of sub-blocks, that in the coding of the second setof blocks, the second probability information is further updateddepending on data of a third target sub-block to be coded among a secondset of sub-blocks included in the fifth target block, after coding thethird target sub-block and before coding a fourth target sub-block to becoded next among the second set of sub-blocks, and that in the coding ofthe second set of blocks, the second probability information is furtherupdated depending on the first probability information before coding afifth target sub-block to be coded first among the second set ofsub-blocks, the first probability information having being updated inthe coding of the first set of blocks depending on the data of the firsttarget sub-block that is spatially closest to the fifth target sub-blockamong the first set of sub-blocks.

Thereby, the first sub-block in each of the regions is coded based onprobability information updated depending on a sub-block that isspatially close to the first sub-block. As a result, coding efficiencyis further improved.

In accordance with another aspect of the present invention, there isprovided an image coding method of coding an image having a plurality ofblocks, the image coding method including coding the blocks sequentiallybased on probability information indicating a data occurrenceprobability, wherein, in the coding, the probability information isupdated depending on data of a first target block to be coded among theblocks, after coding the first target block and before coding a secondtarget block to be coded next among the blocks, and in the coding, athird target block in the blocks to be coded among the blocks is codedbased on the probability information updated depending on the data ofthe first target block that is a neighboring block above the thirdtarget block, the third target block being different from the secondtarget block and being coded after coding the first target block.

Thereby, a target block is coded based on probability informationupdated depending on a neighboring block that is above the first blockand that is spatially close to the target block. As a result, codingefficiency is further improved.

It is possible that, in the coding, the blocks are sequentiallyarithmetic-coded based on the probability information.

Thereby, in the arithmetic coding for coding images based onprobabilities, coding efficiency is improved.

It is further possible that in the coding, the blocks are sequentiallycoded on a line-by-line basis in a horizontal direction from left toright, wherein, after coding a block on far right of a line, a block onfar left of a next line immediately below the line is coded.

As a result, the blocks are coded in raster order. In the above case, atarget block is coded based on probability information updated dependingon a neighboring block above the target block. As a result, codingefficiency is further improved.

It is still further possible that, in the coding, the third target blockis coded based on the probability information, the probabilityinformation having been updated depending on the data of the firsttarget block immediately above the third target block.

Thereby, a target block is coded based on probability informationupdated depending on a block that is immediately above the target blockand is spatially close to the target block. As a result, codingefficiency is further improved.

It is still further possible that, in the coding, the third target blockis coded based on the probability information, the probabilityinformation having been updated depending on the data of the firsttarget block at the immediate upper left of the third target block.

Thereby, a target block is coded based on probability informationupdated depending on a block that is at the immediate upper left of thetarget block and is coded prior to the target block. As a result, aprocessing speed is increased.

It is still further possible that, in the coding, sub-blocks included ineach of the blocks are sequentially coded based on the probabilityinformation, that in the coding, the probability information is furtherupdated depending on data of a first target sub-block to be coded amonga first set of sub-blocks included in the first target block, aftercoding the first target sub-block and before coding a second targetsub-block to be coded next among the first set of sub-blocks, and thatin the coding, a third target block is coded based on the probabilityinformation, the third target block being to be coded first among asecond set of sub-blocks included in the third target block, and theprobability information having been updated depending on the data of thefirst target sub-block that is spatially closest to the third targetsub-block among the first set of sub-blocks.

Thereby, a target sub-block is coded based on probability informationupdated depending on a sub-block that is spatially close to the targetsub-block. As a result, coding efficiency is further improved.

It is still further possible that, in the coding, the probabilityinformation is further updated depending on data of a fourth targetblock on the immediate left of the third target block among the blocks,after coding the fourth target block and before coding the third targetblock, that the image coding method further including calculating, fromfirst probability information and second probability information, theprobability information used in the coding of the third target block,the first probability information being the probability informationupdated depending on the data of the first target block in the coding,and the second probability information being the probability informationupdated depending on the data of the fourth target block in the coding,and that in the coding, the third target block is coded based on theprobability information calculated in the calculating.

Thereby, a target block is coded depending on plural pieces ofprobability information. As a result, coding efficiency is furtherimproved.

It is still further possible that, in the coding, sub-blocks included ineach of the blocks are sequentially coded based on the probabilityinformation, that in the coding, the probability information is furtherupdated depending on data of a first target sub-block to be coded amonga first set of sub-blocks included in the first target block, aftercoding the first target sub-block and before coding a second targetsub-block to be coded next among the first set of sub-blocks, that inthe coding, the probability information is further updated depending ondata of a third target sub-block to be coded among a second set ofsub-blocks included in the fourth target block, after coding the thirdtarget sub-block and before coding a fourth target sub-block to be codednext among the second set of sub-blocks, that in the calculating, theprobability information is calculated from the first probabilityinformation and the second probability information, the probabilityinformation being to be used in coding of a fifth target sub-block to becoded first among a third set of sub-blocks included in the third targetblock, the first probability information being the probabilityinformation updated in the coding depending on the data of the firsttarget sub-block that is spatially closest to the fifth target sub-blockamong the first set of sub-blocks, and the second probabilityinformation being the probability information updated in the codingdepending on the data of the third target sub-block that is spatiallyclosest to the fifth target sub-block among the second set ofsub-blocks, and that in the coding, the fifth target sub-block is codedbased on the probability information calculated in the calculating.

Thereby, a target sub-block is coded based on plural pieces ofprobability information updated depending on sub-blocks that arespatially close to the target sub-block. As a result, coding efficiencyis further improved.

It is still further possible that, in the calculating, the probabilityinformation to be used in coding of the fifth target sub-block iscalculated by weighting the first probability information and the secondprobability information according to (a) a spatial distance from thefifth target sub-block to the first target sub-block and (b) a spatialdistance from the fifth target sub-block to the third target sub-block.

Thereby, the probability information is calculated by being weighteddepending on the distances. A target sub-block is therefore coded basedon more-accurate probability information. As a result, coding efficiencyis further improved.

It is still further possible that, in the coding, the third target blockis coded based on the probability information updated depending on dataof the first target block when predetermined condition is satisfied, andthe third target block is coded based on the probability informationupdated depending on data of a target block immediately prior to thethird target block when the predetermined condition is not satisfied.

Thereby, a target block is coded based on probability informationupdated depending on a neighboring block above the target block, only inthe restricted case. As a result, the number of pieces of storedprobability information is decreased.

In accordance with still another aspect of the present invention, thereis provided an image decoding method of decoding an image having aplurality of regions each including a plurality of blocks, the imagedecoding method including: decoding a first set of blocks included in afirst region of the regions sequentially based on first probabilityinformation indicating a data occurrence probability; and decoding asecond set of blocks included in a second region of the regionssequentially based on second probability information indicating a dataoccurrence probability, the second region being different from the firstregion, wherein, in the decoding of the first set of blocks, the firstprobability information is updated depending on data of a first targetblock to be decoded among the first set of blocks, after decoding thefirst target block and before decoding a second target block to bedecoded next among the first set of blocks, in the decoding of thesecond set of blocks, the second probability information is updateddepending on data of a third target block to be decoded among the secondset of blocks, after decoding the third target block and before decodinga fourth target block to be decoded next among the second set of blocks,and in the decoding of the second set of blocks, the second probabilityinformation is further updated depending on the first probabilityinformation updated in the decoding of the first set of blocks, beforedecoding a fifth target block to be decoded first among the second setof blocks.

Thereby, at the beginning of each of the regions in the image (in otherwords, when the first image in each of the regions in the image is to bedecoded), the probability information to be used in decoding is updateddepending on characteristics of the image. Therefore, the image coded inthe same manner is decoded.

In accordance with still another aspect of the present invention, thereis provided an image decoding method of decoding an image having aplurality of blocks, the image decoding method including decoding theblocks sequentially based on probability information indicating a dataoccurrence probability, wherein, in the decoding, the probabilityinformation is updated depending on data of a first target block to bedecoded among the blocks, after decoding the first target block andbefore decoding a second target block to be decoded next among theblocks, and in the decoding, a third target block in the blocks isdecoded based on the probability information updated depending on thedata of the first target block that is a neighboring block above thethird target block, the third target block being different from thesecond target block and being to be decoded after decoding the firsttarget block.

Thereby, a target block is decoded based on probability informationupdated depending on a neighboring block that is above the target blockand that is spatially close to the target block. Therefore, the imagecoded in the same manner is decoded.

In accordance with still another aspect of the present invention, thereis provided an image coding device that codes an image having aplurality of regions each including a plurality of blocks, the imagecoding device including: a first coding unit configured to code a firstset of blocks included in a first region of the regions sequentiallybased on first probability information indicating a data occurrenceprobability; and a second coding unit configured to code a second set ofblocks included in a second region of the regions sequentially based onsecond probability information indicating a data occurrence probability,the second region being different from the first region, wherein thefirst coding unit is further configured to update the first probabilityinformation depending on data of a first target block to be coded amongthe first set of blocks, after coding the first target block and beforecoding a second target block to be coded next among the first set ofblocks, the second coding unit is further configured to update thesecond probability information depending on data of a third target blockto be coded among the second set of blocks, after coding the thirdtarget block and before coding a fourth target block to be coded nextamong the second set of blocks, and the second coding unit is furtherconfigured to update the second probability information depending on thefirst probability information updated in the coding of the first set ofblocks, before coding a fifth target block to be coded first among thesecond set of blocks.

With the above structure, the image coding device according to theaspect of the present invention can update probability information to beused in coding, at the beginning of each of the regions in the image (inother words, when the first image in each of the regions in the image isto be coded). As a result, coding efficiency is improved.

In accordance with still another aspect of the present invention, thereis provided an image coding device that codes an image having aplurality of blocks, the image coding device including a coding unitconfigured to code the blocks sequentially based on probabilityinformation indicating a data occurrence probability, wherein the codingunit is further configured to update the probability informationdepending on data of a first target block to be coded among the blocks,after coding the first target block and before coding a second targetblock to be coded next among the blocks, and the coding unit isconfigured to code a third target block in the blocks to be coded amongthe blocks, based on the probability information updated depending onthe data of the first target block that is a neighboring block above thethird target block, the third target block being different from thesecond target block and being coded after coding the first target block.

With the above structure, the image coding device according to theaspect of the present invention can code a target block based onprobability information updated depending on a neighboring block that isabove the target block and that is spatially close to the target block.As a result, coding efficiency is further improved.

In accordance with still another aspect of the present invention, thereis provided an image decoding device that decodes an image having aplurality of regions each including a plurality of blocks, the imagedecoding device including: a first decoding unit configured to decode afirst set of blocks included in a first region of the regionssequentially based on first probability information indicating a dataoccurrence probability; and a second decoding unit configured to decodea second set of blocks included in a second region of the regionssequentially based on second probability information indicating a dataoccurrence probability, the second region being different from the firstregion, wherein the first decoding unit is further configured to updatethe first probability information depending on data of a first targetblock to be decoded among the first set of blocks, after decoding thefirst target block and before decoding a second target block to bedecoded next among the first set of blocks, the second decoding unit isconfigured to update the second probability information depending ondata of a third target block to be decoded among the second set ofblocks, after decoding the third target block and before decoding afourth target block to be decoded next among the second set of blocks,and the second decoding unit is further configured to update the secondprobability information depending on the first probability informationupdated in the decoding of the first set of blocks, before decoding afifth target block to be decoded first among the second set of blocks.

With the above structure, the image decoding device according to theaspect of the present invention can update probability information to beused in decoding depending on characteristics of the image, at thebeginning of each of the regions in the image (in other words, when thefirst image in each of the regions in the image is to be decoded).Therefore, the image coded in the same manner can be decoded.

In accordance with still another aspect of the present invention, thereis provided an image decoding device that decodes an image having aplurality of blocks, the image decoding device including a decoding unitconfigured to decode the blocks sequentially based on probabilityinformation indicating a data occurrence probability, wherein thedecoding unit is further configured to update the probabilityinformation depending on data of a first target block to be decodedamong the blocks, after decoding the first target block and beforedecoding a second target block to be decoded next among the blocks, andthe decoding unit is configured to decode a third target block in theblocks based on the probability information updated depending on thedata of the first target block that is a neighboring block above thethird target block, the third target block being different from thesecond target block and being to be decoded after decoding the firsttarget block.

With the above structure, the image decoding device according to theaspect of the present invention can decode a target block based onprobability information updated depending on a neighboring block that isabove the target block and that is spatially close to the target block.Therefore, the image coded in the same manner can be decoded.

In accordance with still another aspect of the present invention, thereis provided an integrated circuit that codes an image having a pluralityof regions each including a plurality of blocks, the integrated circuitincluding: a first coding unit configured to code a first set of blocksincluded in a first region of the regions sequentially based on firstprobability information indicating a data occurrence probability; and asecond coding unit configured to code a second set of blocks included ina second region of the regions sequentially based on second probabilityinformation indicating a data occurrence probability, the second regionbeing different from the first region, wherein the first coding unit isfurther configured to update the first probability information dependingon data of a first target block to be coded among the first set ofblocks, after coding the first target block and before coding a secondtarget block to be coded next among the first set of blocks, the secondcoding unit is further configured to update the second probabilityinformation depending on data of a third target block to be coded amongthe second set of blocks, after coding the third target block and beforecoding a fourth target block to be coded next among the second set ofblocks, and the second coding unit is further configured to update thesecond probability information depending on the first probabilityinformation updated in the coding of the first set of blocks, beforecoding a fifth target block to be coded first among the second set ofblocks.

With the above structure, the integrated circuit according to the aspectof the present invention can update probability information to be usedin coding depending on characteristics of the image, at the beginning ofeach of the regions in the image (in other words, when the first imagein each of the regions in the image is to be coded). As a result, codingefficiency is improved.

In accordance with still another aspect of the present invention, thereis provided an integrated circuit that codes an image having a pluralityof blocks, the integrated circuit including a coding unit configured tocode the blocks sequentially based on probability information indicatinga data occurrence probability, wherein the coding unit is furtherconfigured to update the probability information depending on data of afirst target block to be coded among the blocks, after coding the firsttarget block and before coding a second target block to be coded nextamong the blocks, and the coding unit is configured to code a thirdtarget block in the blocks to be coded among the blocks, based on theprobability information updated depending on the data of the firsttarget block that is a neighboring block above the third target block,the third target block being different from the second target block andbeing coded after coding the first target block.

With the above structure, the integrated circuit according to the aspectof the present invention can code a target block based on probabilityinformation updated depending on a neighboring block that is above thetarget block and that is spatially close to the target block. As aresult, coding efficiency is further improved.

In accordance with still another aspect of the present invention, thereis provided an integrated circuit that decodes an image having aplurality of regions each including a plurality of blocks, theintegrated circuit including: a first decoding unit configured to decodea first set of blocks included in a first region of the regionssequentially based on first probability information indicating a dataoccurrence probability; and a second decoding unit configured to decodea second set of blocks included in a second region of the regionssequentially based on second probability information indicating a dataoccurrence probability, the second region being different from the firstregion, wherein the first decoding unit is further configured to updatethe first probability information depending on data of a first targetblock to be decoded among the first set of blocks, after decoding thefirst target block and before decoding a second target block to bedecoded next among the first set of blocks, the second decoding unit isconfigured to update the second probability information depending ondata of a third target block to be decoded among the second set ofblocks, after decoding the third target block and before decoding afourth target block to be decoded next among the second set of blocks,and the second decoding unit is further configured to update the secondprobability information depending on the first probability informationupdated in the decoding of the first set of blocks, before decoding afifth target block to be decoded first among the second set of blocks.

With the above structure, the integrated circuit according to the aspectof the present invention can update probability information to be usedin decoding depending on characteristics of the image, at the beginningof each of the regions in the image (in other words, when the firstimage in each of the regions in the image is to be decoded). Therefore,the integrated circuit can decode the image coded in the same manner.

In accordance with still another aspect of the present invention, thereis provided an integrated circuit that decodes an image having aplurality of blocks, the integrated circuit including a decoding unitconfigured to decode the blocks sequentially based on probabilityinformation indicating a data occurrence probability, wherein thedecoding unit is further configured to update the probabilityinformation depending on data of a first target block to be decodedamong the blocks, after decoding the first target block and beforedecoding a second target block to be decoded next among the blocks, andthe decoding unit is configured to decode a third target block in theblocks based on the probability information updated depending on thedata of the first target block that is a neighboring block above thethird target block, the third target block being different from thesecond target block and being to be decoded after decoding the firsttarget block.

With the above structure, the integrated circuit according to the aspectof the present invention can decode a target block based on probabilityinformation updated depending on a neighboring block that is above thetarget block and that is spatially close to the target block. Therefore,the integrated circuit can decode the image coded in the same manner.

According to the present invention, more appropriate probabilityinformation is used to improve coding efficiency.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram showing a structure of an image coding deviceaccording to a first embodiment of the present invention.

FIG. 2 is a block diagram showing a structure of an arithmetic codingunit according to the first embodiment of the present invention.

FIG. 3 is a flowchart of processing performed by the arithmetic codingunit according to the first embodiment of the present invention.

FIG. 4 is an explanatory table of a symbol occurrence probability tableaccording to the first embodiment of the present invention.

FIG. 5 is a flowchart of symbol occurrence probability initializationaccording to the first embodiment of the present invention.

FIG. 6 is a flowchart of symbol occurrence probability outputtingaccording to the first embodiment of the present invention.

FIG. 7A is a conceptual diagram showing processing performed by theimage coding device according to the first embodiment of the presentinvention.

FIG. 7B is a conceptual diagram showing processing performed by theimage coding device according to the first embodiment of the presentinvention.

FIG. 8 is a conceptual diagram showing details of the processingperformed by the image coding device according to the first embodimentof the present invention.

FIG. 9 is a flowchart of symbol occurrence probability outputtingaccording to a second embodiment of the present invention.

FIG. 10 is a conceptual diagram showing details of processing performedby an image coding device according to the second embodiment of thepresent invention.

FIG. 11 is a block diagram showing a structure of an arithmetic codingunit according to a third embodiment of the present invention.

FIG. 12 is a flowchart of processing performed by the arithmetic codingunit according to the third embodiment of the present invention.

FIG. 13 is a flowchart of symbol occurrence probability initializationaccording to the third embodiment of the present invention.

FIG. 14 is a flowchart of symbol occurrence probability outputtingaccording to the third embodiment of the present invention.

FIG. 15A is a conceptual diagram showing processing performed by animage coding device according to the third embodiment of the presentinvention.

FIG. 15B is a conceptual diagram showing processing performed by theimage coding device according to the third embodiment of the presentinvention.

FIG. 15C is a conceptual diagram showing processing performed by theimage coding device according to the third embodiment of the presentinvention.

FIG. 16 is a conceptual diagram showing details of the processingperformed by the image coding device according to the third embodimentof the present invention.

FIG. 17A is a conceptual diagram showing processing performed by theimage coding device according to the third embodiment of the presentinvention.

FIG. 17B is a conceptual diagram showing processing performed by theimage coding device according to the third embodiment of the presentinvention.

FIG. 17C is a conceptual diagram showing processing performed by theimage coding device according to the third embodiment of the presentinvention.

FIG. 18 is a flowchart of symbol occurrence probability outputtingaccording to a fourth embodiment of the present invention.

FIG. 19 is a conceptual diagram showing details of processing performedby an image coding device according to the fourth embodiment of thepresent invention.

FIG. 20 is a flowchart of symbol occurrence probability initializationaccording to the fifth embodiment of the present invention.

FIG. 21 is a conceptual diagram showing details of processing performedby an image coding device according to the fifth embodiment of thepresent invention.

FIG. 22 is a flowchart of symbol occurrence probability outputtingaccording to a sixth embodiment of the present invention.

FIG. 23 is a conceptual diagram showing details of processing performedby an image coding device according to the sixth embodiment of thepresent invention.

FIG. 24 is a conceptual diagram showing details of processing performedby an image coding device according to a seventh embodiment of thepresent invention.

FIG. 25 is a flowchart of symbol occurrence probability initializationaccording to an eighth embodiment of the present invention.

FIG. 26 is a flowchart of symbol occurrence probability outputtingaccording to the eighth embodiment of the present invention.

FIG. 27A is a conceptual diagram showing processing performed by animage coding device according to the eighth embodiment of the presentinvention.

FIG. 27B is a conceptual diagram showing processing performed by theimage coding device according to the eighth embodiment of the presentinvention.

FIG. 28 is a conceptual diagram showing a variation of processingperformed by the image coding device according to the eighth embodimentof the present invention.

FIG. 29 is a block diagram showing a structure of an image coding deviceaccording to a ninth embodiment of the present invention.

FIG. 30 is a block diagram showing a structure of a pixel coding unitaccording to the ninth embodiment of the present invention.

FIG. 31 is a flowchart of processing performed by the pixel coding unitaccording to the ninth embodiment of the present invention.

FIG. 32 is a conceptual diagram showing details of the processingperformed by the pixel coding unit according to the ninth embodiment ofthe present invention.

FIG. 33 is a conceptual diagram showing details of processing performedby the image coding device according to the ninth embodiment of thepresent invention.

FIG. 34 is a block diagram showing a structure of an image decodingdevice according to a tenth embodiment of the present invention.

FIG. 35 is a block diagram showing a structure of an arithmetic decodingunit according to the tenth embodiment of the present invention.

FIG. 36 is a block diagram showing a structure of a pixel decoding unitaccording to the tenth embodiment of the present invention.

FIG. 37 is a flowchart of processing performed by the arithmeticdecoding unit according to the tenth embodiment of the presentinvention.

FIG. 38 is a flowchart of processing performed by the pixel decodingunit according to the tenth embodiment of the present invention.

FIG. 39 is a flowchart of processing performed by the pixel decodingunit according to the tenth embodiment of the present invention.

FIG. 40A is a block diagram showing a structure of an image codingdevice according to an eleventh embodiment of the present invention.

FIG. 40B is a flowchart of processing performed by the image codingdevice according to the eleventh embodiment of the present invention.

FIG. 41A is a block diagram showing a structure of an image decodingdevice according to the eleventh embodiment of the present invention.

FIG. 41B is a flowchart of processing performed by the image decodingdevice according to the eleventh embodiment of the present invention.

FIG. 42A is a block diagram showing a structure of an image codingdevice according to a twelfth embodiment of the present invention.

FIG. 42B is a flowchart showing processing performed by the image codingdevice according to the twelfth embodiment of the present invention.

FIG. 43A is a block diagram showing a structure of an image decodingdevice according to the twelfth embodiment of the present invention.

FIG. 43B is a flowchart of processing performed by the image decodingdevice according to the twelfth embodiment of the present invention.

FIG. 44A is a block diagram showing a structure of an image codingdevice according to a variation of the twelfth embodiment of the presentinvention.

FIG. 44B is a flowchart showing processing performed by the image codingdevice according to the variation of the twelfth embodiment of thepresent invention.

FIG. 45A is a block diagram showing a structure of an image decodingdevice according to the variation of the twelfth embodiment of thepresent invention.

FIG. 45B is a flowchart showing processing performed by the imagedecoding device according to the variation of the twelfth embodiment ofthe present invention.

FIG. 46 is a diagram showing an overall configuration of a contentsupply system for implementing content distribution service according tothe embodiment of the present invention.

FIG. 47 is a diagram showing an overall configuration of a digitalbroadcast system according to the embodiment of the present invention.

FIG. 48 is a block diagram showing a structure example of a TV accordingto the embodiment of the present invention.

FIG. 49 is a block diagram showing a structure example of an informationreproduction/recording unit which reads/writes information from/to arecording medium that is an optical disc according to the embodiment ofthe present invention.

FIG. 50 is a diagram showing a structure example of the recording mediumthat is an optical disc according to the embodiment of the presentinvention.

FIG. 51 is a block diagram showing a structure example of an integratedcircuit that implements the image encoding method according to any oneof the embodiments of the present invention.

FIG. 52 is a block diagram showing a structure example of an integratedcircuit that implements the image encoding method and the image decodingmethod according to any one of the embodiments of the present invention.

FIG. 53A is a conceptual diagram showing image according to theconventional technique.

FIG. 53B is a conceptual diagram showing slices according to theconventional technique.

FIG. 53C is a conceptual diagram showing a stream according to theconventional technique.

FIG. 54 is a block diagram showing a structure of an arithmetic codingunit according to the conventional technique.

FIG. 55A is a conceptual diagram showing image according to theconventional technique.

FIG. 55B is a conceptual diagram showing slices according to theconventional technique.

DETAILED DESCRIPTION OF THE INVENTION

The following describes image coding devices according to embodiments ofthe present invention with reference to the drawings.

First Embodiment

First, the description is given for a summary of an image coding deviceaccording to the first embodiment of the present invention. The imagecoding device according to the first embodiment divides a picture intoslices and permits the slices to refer to each other. The image codingdevice according to the first embodiment adopts, at the beginning ofeach slice, a symbol occurrence probability table of a neighboringmacroblock of the first macroblock in the slice. Thereby, the imagecoding device according to the first embodiment can use the symboloccurrence probability table appropriate for a target image(macroblock). Therefore, it is possible to improve coding efficiency.

This is the summary of the image coding device according to the firstembodiment.

The following describes a structure of the image coding device accordingto the first embodiment. FIG. 1 is a block diagram showing the structureof the image coding device according to the first embodiment. The imagecoding device according to the first embodiment includes an arithmeticcoding unit 1 and an arithmetic coding unit 2.

FIG. 2 is a block diagram showing a structure of the arithmetic codingunit 1 shown in FIG. 1 The arithmetic coding unit 1 includes abinarization unit 3, a symbol occurrence probability storage unit 4, acontext control unit 5, and a binary arithmetic encoder 6.

The binarization unit 3 performs binarization of (binarizes) non-binarysyntax elements. The symbol occurrence probability storage unit 4 storesprobabilities of occurrence of symbols (symbol occurrenceprobabilities). The context control unit 5 determines which symboloccurrence probability is to be used among the symbol occurrenceprobabilities stored in the symbol occurrence probability storage unit4. Then, the context control unit 5 reads the determined symboloccurrence probability from the symbol occurrence probability storageunit 4. The binary arithmetic encoder 6 performs arithmetic coding basedon the symbol occurrence probability provided from the context controlunit 5. The arithmetic coding unit 2 has the same structure as that ofthe arithmetic coding unit 1. Therefore, the structure of the arithmeticcoding unit 2 will not be explained.

This is the description of the structure of the image coding deviceaccording to the first embodiment.

The following describes processing performed by the image coding deviceshown in FIGS. 1 and 2 with reference to a flowchart of FIG. 3. FIG. 3shows coding of one macroblock. The description will be given mainly forprocessing performed by the arithmetic coding unit 1. The processingperformed by the arithmetic coding unit 2 is the same as that of thearithmetic coding unit 1.

As shown in FIG. 3, in the image coding device according to the firstembodiment, at the beginning, the symbol occurrence probability storageunit 4 initializes the stored symbol occurrence probabilities (S100).The initialization of occurrence probabilities will be described indetail later. Next, the binarization unit 3 binarizes non-binary syntaxelements using a method defined by H.264 standard (S101).

Then, the context control unit 5 controls a context using a methoddefined by H.264 standard (S102). The context control refers toprocessing of reading a symbol occurrence probability corresponding to atarget macroblock to be coded from the symbol occurrence probabilitystorage unit 4 based on information of neighboring macroblock(s) of thetarget macroblock (neighbor information) and a bit position to be coded,and then providing the symbol occurrence probability to the binaryarithmetic encoder 6. Then, based on the symbol occurrence probability,the binary arithmetic encoder 6 arithmetic-codes the target macroblockusing a method defined by H.264 standard (S103).

The context control unit 5 stores an updated symbol occurrenceprobability, which results from the arithmetic coding, into the symboloccurrence probability storage unit 4 (S104). As needed, the symboloccurrence probability storage unit 4 outputs the stored symboloccurrence probability (S105). The symbol occurrence probabilityoutputting will be described later.

Next, the arithmetic coding unit 1 determines whether or not the targetmacroblock has already been coded (S106). If the target macroblock hasalready been coded (Yes at S106), then the arithmetic coding unit 1completes the processing. On the other hand, if the target macroblockhas not yet been coded (No at S106), then the arithmetic coding unit 1repeats the steps from the binarization (S101).

FIG. 4 is an explanatory table of a symbol occurrence probability tableheld in the symbol occurrence probability storage unit 4. Each index(ctxIdx) in FIG. 4 is determined depending on (a) a context, namely,neighbor information of the target macroblock, and (b) a bit position tobe coded. There are entries indicated by each index. The entries are:(a) a symbol occurrence probability (pStateIdx); and (b) a symbol(valMPS) indicating a most probable symbol. The table structure isdefined in H.264 standard.

The initialization of symbol occurrence probabilities at S100 in FIG. 3is described with reference to FIG. 5. At the beginning, the arithmeticcoding unit 1 determines whether or not a target macroblock to be codedis the first macroblock in a slice (S110). The slice refers to anentropy slice disclosed in Non-Patent Reference 3. In other words, theslice can refer to or being referred to by another slice.

If the target macroblock is not the first macroblock in a slice (No atS110), then the arithmetic coding unit 1 completes the processingwithout proceeding to any step. On the other hand, if the targetmacroblock is the first macroblock in a slice (Yes at S110), then thearithmetic coding unit 1 further determines whether or not the targetmacroblock is the first macroblock in a picture (S111).

If the target macroblock is the first macroblock in a picture (Yes atS111), then the arithmetic coding unit 1 initializes the symboloccurrence probability table stored in the symbol occurrence probabilitystorage unit 4 using a method defined by H.264 standard (S112). On theother hand, if the target macroblock is not the first macroblock in apicture (No at S111), then the arithmetic coding unit 1 writes (inputs),into the symbol occurrence probability storage unit 4, a symboloccurrence probability table that has been outputted in coding amacroblock immediately above the target macroblock (hereinafter,referred to also as an “immediately-above macroblock”) (S113).

Next, the symbol occurrence probability outputting at S105 in FIG. 3 isdescribed with reference to FIG. 6. At the beginning, the arithmeticcoding unit 1 determines whether or not the target macroblock ispositioned on the bottom of a slice (in other words, has a lower borderthat is a slice border) and on the far left of a picture (S120).

If the target macroblock is not positioned on the bottom of a slice ornot positioned on the far left of a picture (No at S120), then thearithmetic coding unit 1 completes the processing without proceeding toany step. On the other hand, if the target macroblock is positioned onthe bottom of a slice and on the far left of a picture (Yes at S120),then the arithmetic coding unit 1 further determines whether or not thetarget macroblock has already been coded (S121).

If the target macroblock has not yet been coded (No at S121), then thearithmetic coding unit 1 completes the processing without proceeding toany step. On the other hand, if the target macroblock has already beencoded (Yes at S121), then the arithmetic coding unit 1 causes the symboloccurrence probability storage unit 4 to output a stored symboloccurrence probability table (S122), and then completes the processing.

The processing for an entire picture is described with reference to FIG.7A. As shown in FIG. 7A, a picture is divided into four slices. Each ofthe slices is further divided into macroblocks each having 16 pixels×16pixels. A position A in FIG. 7A is the first macroblock in the picture.Therefore, the arithmetic coding unit 1 initializes the symboloccurrence probability table stored in the symbol occurrence probabilitystorage unit 4, by using a method defined by H.264 standard (S112 inFIG. 5). A position B in FIG. 7A is a macroblock on the bottom in aslice (in other words, having a lower border that is a slice border) andon the far left of the picture. Therefore, the arithmetic coding unit 1causes the symbol occurrence probability storage unit 4 to output thestored symbol occurrence probability table (S122 in FIG. 6). A positionC shown in FIG. 7A is the first macroblock in another slice, but is notthe first macroblock in the picture. Therefore, the arithmetic codingunit 1 writes (inputs), into the symbol occurrence probability storageunit 4, a symbol occurrence probability table outputted for themacroblock at the position B (S113 in FIG. 5).

More specifically, each macroblock having 16 pixels×16 pixels is dividedinto a plurality of sub-blocks each having 8 pixels×8 pixels to becoded. That is, as shown in FIG. 8, the time of completing coding of amacroblock that is included in a slice 0 and is immediately above atarget macroblock is the time of completing coding of a sub-block 3. Theimage coding device causes the symbol occurrence probability storageunit 4 to output a symbol occurrence probability table at the time ofcompleting coding of the sub-block 3 in the macroblock. Then, at thetime of starting coding of a macroblock (namely, the first macroblock ina slice 1) immediately below the macroblock, the image coding devicewrites (inputs) the outputted symbol occurrence probability table intothe symbol occurrence probability storage unit 4.

This is the description for the image coding device according to thefirst embodiment.

As described above, the image coding device according to the firstembodiment initializes the symbol occurrence probability table only forthe first macroblock in a picture. Then, before coding of the firstmacroblock in each slice, the image coding device writes (inputs), intothe symbol occurrence probability storage unit 4, a symbol occurrenceprobability table outputted for a macroblock that is spatially closestto a previous slice. Thereby, the image coding device can code imageusing a symbol occurrence probability regarding image at a spatiallyclose position. As a result, it is possible to further improve codingefficiency.

It should be noted in the first embodiment that the arithmetic codingmethod defined by H.264 standard is adopted. However, any other methodcan be adopted as long as the coding is performed based on the symboloccurrence probability table or data similar to the symbol occurrenceprobability table which is adaptively updated depending on image.

It should also be noted in the first embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example.

It should also be noted in the first embodiment that FIG. 7B or the likeshows the example of coding images in a slice in a zigzag order.However, images may be coded in the raster order defined by H.264standard or in any other orders.

It should also be noted in the first embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the first embodiment that the coding is basedon H.264 standard, but the coding may be based on any other similarstandards.

Second Embodiment

Here, the description is given for a summary of an image coding deviceaccording to the second embodiment of the present invention. The imagecoding device according to the second embodiment differs from the imagecoding device according to the first embodiment in that a position of animage for which a symbol occurrence probability table is outputted isspatially closer to a position of an image which is coded based on theoutputted symbol occurrence probability table. Thereby, the image codingdevice according to the second embodiment can further improve codingefficiency.

This is the summary of the image coding device according to the secondembodiment.

Since the structure of the image coding device according to the secondembodiment is the same as the structure of the image coding deviceaccording to the first embodiment, it will be not explained again.

The following describes processing performed by the image coding deviceaccording to the second embodiment. The processing performed by theimage coding device according to the second embodiment differs from theprocessing performed by the image coding device according to the firstembodiment in the symbol occurrence probability outputting at S105 inFIG. 3. Next, symbol occurrence probability outputting (S105) accordingto the second embodiment is described with reference to FIG. 9.

At the beginning, the arithmetic coding unit 1 determines whether or notthe target macroblock is positioned on the bottom of a slice (in otherwords, has a lower border that is a slice border) and on the far left ofa picture (S130).

If the target macroblock is not positioned on the bottom of a slice ornot positioned on the far left of a picture (No at S130), then thearithmetic coding unit 1 completes the processing without proceeding toany step. On the other hand, if the target macroblock is positioned onthe bottom of a slice and on the far left of a picture (Yes at S130),then the arithmetic coding unit 1 further determines whether or not asub-block 2 in the target macroblock has already been coded (S131).

If the sub-block 2 has not yet been coded (No at S131), then thearithmetic coding unit 1 completes the processing without proceeding toany step. On the other hand, if the sub-block 2 has already been coded(Yes at S131), then the arithmetic coding unit 1 causes the symboloccurrence probability storage unit 4 to output the stored symboloccurrence probability table (S132), and then completes the processing.

In more detail, as shown in FIG. 10, the arithmetic coding unit 1 causesthe symbol occurrence probability storage unit 4 to output the storedsymbol occurrence probability table, at the time of completing coding ofthe sub-block 2 that is included in the slice 0 and will be positionedabove a macroblock requiring the symbol occurrence probability table.The arithmetic coding unit 2 writes (inputs), into the symbol occurrenceprobability storage unit 4, the symbol occurrence probability table thathas been outputted at the time of starting coding of animmediately-below macroblock that is the first macroblock in the slice 1and below the macroblock including the above-described sub-block 2.

This is the description for the image coding device according to thesecond embodiment.

As described above, the image coding device according to the secondembodiment writes (inputs), into the symbol occurrence probabilitystorage unit 4, a symbol occurrence probability table outputted for amacroblock that is the first macroblock in each slice and is spatiallyclosest to a previous slice. Thereby, the image coding device accordingto the second embodiment can code the first macroblock in each slice byusing a symbol occurrence probability of a macroblock that is spatiallyclosest to the first macroblock. Then, the image coding device accordingto the second embodiment can further improve coding efficiency.

It should be noted in the second embodiment that the arithmetic codingmethod defined by H.264 standard is adopted. However, any other methodcan be adopted as long as the coding is performed based on the symboloccurrence probability table or data similar to the symbol occurrenceprobability table which is adaptively updated depending on image.

It should also be noted in the second embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the secondembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the second embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the second embodiment that the coding isbased on H.264 standard, but the coding may be based on any othersimilar standards.

Third Embodiment

Here, the description is given for a summary of an image coding deviceaccording to the third embodiment of the present invention. The imagecoding device according to the third embodiment differs from the imagecoding devices according to the first and second embodiments in that asymbol occurrence probability table outputted for a macroblock that isspatially closer to a target macroblock is used not only in coding thefirst macroblock in each slice, but in coding any macroblocks. As aresult, it is possible to further improve coding efficiency.

This is the summary of the image coding device according to the thirdembodiment.

The following describes a structure of the image coding device accordingto the third embodiment. Since the structure of the image coding deviceaccording to the third embodiment is the same as the structure of theimage coding device according to the first embodiment shown in FIG. 1,it will be not explained again. FIG. 11 is a block diagram showing astructure of a variation of the arithmetic coding unit 1 shown inFIG. 1. An arithmetic coding unit 1 according to the third embodimentdiffers from the arithmetic coding unit 1 according to the firstembodiment in that a symbol occurrence probability calculation unit 7 isadded. The symbol occurrence probability calculation unit 7 holds anoutputted symbol occurrence probability table and calculates a newsymbol occurrence probability. Regarding the other units except thesymbol occurrence probability calculation unit 7, the same referencenumerals of FIG. 2 are assigned to the identical units of FIG. 11, sothat the identical units are not explained again below. Furthermore, anarithmetic coding unit 2 included in the image coding device accordingto the third embodiment has the same structure as that of the arithmeticcoding unit 1 according to the third embodiment. Therefore, thestructure of the arithmetic coding unit 2 will not be explained.

This is the description of the structure of the image coding deviceaccording to the third embodiment.

The following describes processing performed by the image coding deviceaccording to the third embodiment with reference to a flowchart of FIG.12. FIG. 12 shows coding of one macroblock. As shown in FIG. 12, at thebeginning, the symbol occurrence probability calculation unit 7calculates symbol occurrence probabilities to be held in the symboloccurrence probability storage unit 4 (S150). The calculation ofoccurrence probabilities will be described in detail later. Next, thebinarization unit 3 binarizes non-binary syntax elements using themethod defined by H.264 standard (S151).

Then, the context control unit 5 controls a context using the methoddefined by H.264 standard (S152). The context control refers toprocessing of reading a symbol occurrence probability corresponding to atarget macroblock from the symbol occurrence probability storage unit 4based on information of neighbor information of the target macroblockand a bit position to be coded, and then providing the symbol occurrenceprobability to the binary arithmetic encoder 6. Then, the binaryarithmetic encoder 6 performs arithmetic coding using the method definedby H.264 standard (S153).

The arithmetic coding unit 1 stores the updated symbol occurrenceprobability, which results from the arithmetic coding, into the symboloccurrence probability storage unit 4 (S154). As needed, the arithmeticcoding unit 1 causes the symbol occurrence probability storage unit 4 tooutput the stored symbol occurrence probability (S155). The symboloccurrence probability outputting will be described later.

Next, the arithmetic coding unit 1 determines whether or not the targetmacroblock has already been coded (S156). If the target macroblock hasalready been coded (Yes at S156), then the arithmetic coding unit 1completes the processing. On the other hand, if the target macroblockhas not yet been coded (No at S156), then the arithmetic coding unit 1repeats the steps from the binarization (S151).

The symbol occurrence probability table stored in the symbol occurrenceprobability storage unit 4 is the same as the symbol occurrenceprobability table described in the first embodiment and shown in FIG. 4.Therefore, the symbol occurrence probability table will not be explainedagain.

The calculation of a symbol occurrence probability table at S150 in FIG.12, which is performed by the symbol occurrence probability calculationunit 7, is described with reference to FIG. 13.

At the beginning, as shown in FIG. 13, the symbol occurrence probabilitycalculation unit 7 determines whether or not there is a macroblockimmediately above the target macroblock (hereinafter, referred to alsoas an “immediately-above macroblock”) (S160). If there is a macroblockimmediately above the target macroblock (Yes at S160), then the symboloccurrence probability calculation unit 7 further determines whether ornot there is a macroblock at the immediate left of the target macroblock(hereinafter, referred to also as a “left macroblock”) (S161). If thereis a macroblock at the immediate left of the target macroblock (Yes atS161), it means that there are both immediately-above macroblock andleft macroblock. Therefore, the symbol occurrence probabilitycalculation unit 7 averages symbol occurrence probabilities of theimmediately-above macroblock and the left macroblock to calculate asymbol occurrence probability of the target macroblock (S162).

Here, the average calculation method is determined by the followingequation 1, where pStateIdxA denotes the symbol occurrence probabilityof the immediately-above macroblock, valMPSA denotes a symbol of theimmediately-above macroblock, pStateIdxB denotes the symbol occurrenceprobability of the left macroblock, valMPSB denotes a symbol of the leftmacroblock, pStateIdx denotes a symbol occurrence probability of thetarget macroblock, and valMPS denotes a symbol of the target macroblock.

$\begin{matrix}{{if}\mspace{20mu}{\left( {{valMPSA}=={valMPSB}} \right)\mspace{14mu}\left\lbrack \mspace{20mu}{{{pStateIdx} = {\left( \mspace{14mu}{{pStateIdxA} + {pStateIdxB}}\mspace{14mu} \right)\mspace{14mu}/\mspace{14mu} 2}};\mspace{20mu}{{valMPS} = {valMPSA}};} \right\rbrack}\mspace{14mu}{{else}\mspace{14mu}\left\lbrack \mspace{20mu}{{{pStateIdx}\; = \;{\left( {{- {pStateIdxA}} + {pStateIdxB}} \right)\mspace{14mu}/\mspace{14mu} 2}};\mspace{20mu}{{valMPS} = {valMPSB}};\mspace{20mu}{{if}\mspace{14mu}{\left( {{pStateIdx} < 0} \right)\mspace{20mu}\left\lbrack \mspace{40mu}{{{pStateIdx} = {- {pStateIdx}}};\mspace{40mu}{{valMPS} = {valMPSA}};}\mspace{20mu} \right\rbrack}}} \right\rbrack}} & \left( {{Equation}\mspace{14mu} 1} \right)\end{matrix}$

As determined by the equation 1, if valMPSA is equal to valMPSB, thesymbol occurrence probability calculation unit 7 calculate an arithmeticaverage of pStateIdxA and pStateIdxB. On the other hand, if valMPSA isnot equal to valMPSB, the symbol occurrence probability calculation unit7 performs pseudo sign inversion on pStateIdxA to calculate anarithmetic average.

In the above-described manner, the symbol occurrence probabilitycalculation unit 7 calculates a symbol occurrence probability for eachindex. The symbol occurrence probability calculation unit 7 therebygenerates a symbol occurrence probability table including the calculatedsymbol occurrence probabilities, and writes the generated symboloccurrence probability table into the symbol occurrence probabilitystorage unit 4.

In referring back to FIG. 13, if there is no macroblock at the immediateleft of the target macroblock (No at S161), then the symbol occurrenceprobability calculation unit 7 writes a symbol occurrence probabilitytable of the immediately-above macroblock directly into the symboloccurrence probability storage unit 4 (S163).

If there is no macroblock immediately above the target macroblock (No atS160), then the symbol occurrence probability calculation unit 7determines whether or not there is a macroblock at the immediate left ofthe target macroblock (S164). If there is a macroblock at the immediateleft of the target macroblock (Yes at S164), then the symbol occurrenceprobability calculation unit 7 writes a symbol occurrence probabilitytable of the left macroblock directly into the symbol occurrenceprobability storage unit 4 (S165).

On the other hand, if there is no macroblock at the immediate left ofthe target macroblock (No at S164), this means that there is neitherimmediately-above macroblock nor left macroblock of the targetmacroblock. Therefore, the arithmetic coding unit 1 initializes thesymbol occurrence probability table (S166). The initialization may bethe method defined by H. 264 standard. It is possible that the symboloccurrence probability storage unit 4 initializes the stored symboloccurrence probability table. For the initialization of a symboloccurrence probability table, it is also possible that the symboloccurrence probability calculation unit 7 generates an initializedsymbol occurrence probability table and writes the generated table intothe symbol occurrence probability storage unit 4.

Next, the outputting of a symbol occurrence probability table at S155 inFIG. 12, which is performed by the symbol occurrence probability storageunit 4, is described with reference to FIG. 14.

At the beginning, the arithmetic coding unit 1 determines whether or notthere is a macroblock at the immediate right of or immediately below thetarget macroblock (S170). If there is neither macroblock at theimmediate right of nor immediately below the target macroblock (No atS170), then the arithmetic coding unit 1 completes the processing. Onthe other hand, if there is a macroblock at the immediate right of orimmediately below the target macroblock (Yes at S170), then thearithmetic coding unit 1 determines whether or not the target macroblockhas already been coded (S171).

If the target macroblock has not yet been coded (No at S171), then thearithmetic coding unit 1 completes the processing without proceeding toany step. On the other hand, if the target macroblock has already beencoded (Yes at S171), then the arithmetic coding unit 1 causes the symboloccurrence probability storage unit 4 to output the stored symboloccurrence probability table (S172). In the third embodiment, most ofthe macroblocks need the outputting of a symbol occurrence probabilitytable. Therefore, the arithmetic coding unit 1 may cause the symboloccurrence probability storage unit 4 to output the stored symboloccurrence probability table, for each of the macroblocks.

The processing for an entire picture is described with reference toFIGS. 15A, 15B, and 15C. As shown in FIGS. 15A and 15B, it is assumedthat a picture is divided into four slices, and that each of the slicesis divided into macroblocks each having 16 pixels×16 pixels. In FIGS.15A and 15B, X shows a target macroblock to be currently coded, A showsa macroblock at the immediate left of the target macroblock(hereinafter, referred to as a “left macroblock”), and B shows amacroblock immediately above the target macroblock (hereinafter,referred to as an “immediately-above macroblock”).

In the third embodiment, slices can refer to each other. Therefore, asshown in FIG. 15A, a symbol occurrence probability table is sometimescalculated by using information beyond a slice border. In addition, asshown in FIG. 15B, a symbol occurrence probability table is sometimescalculated by using information within the same slice. Moreover, FIG.15C shows order of coding macroblocks in a slice.

More specifically, as shown in FIG. 16, the arithmetic coding unit 1causes the symbol occurrence probability storage unit 4 to output astored symbol occurrence probability table at the time of completingcoding of the immediately-above macroblock (B in FIG. 16), namely, atthe time of completing coding a sub-block 3 having 8 pixels×8 pixelsincluded in the immediately-above macroblock. In addition, thearithmetic coding unit 1 causes the symbol occurrence probabilitystorage unit 4 to output a stored symbol occurrence probability table atthe time of completing coding of the left macroblock (A in FIG. 16),namely, at the time of completing coding a sub-block 3 having 8 pixels×8pixels included in the left macroblock. Then, the arithmetic coding unit1 writes (inputs), into the symbol occurrence probability storage unit4, the outputted symbol occurrence probability tables at the time ofstarting coding of the target macroblock (X in FIG. 16).

This is the description for the image coding device according to thethird embodiment.

As described above, the image coding device according to the thirdembodiment codes the first image included in each macroblock, by usingsymbol occurrence probabilities of the immediately-above and the leftmacroblocks that are the spatially closest to the target macroblock, andthat are not the closest to the macroblock in coding order. Furthermore,the image coding device according to the third embodiment codes thetarget macroblock using a symbol occurrence probability generated byaveraging the two symbol occurrence probabilities of theimmediately-above and left macroblocks. Thereby, the image coding deviceaccording to the third embodiment can code target image based on asymbol occurrence probability of image that is the spatially closest tothe target image. As a result, it is possible to achieve higher codingefficiency.

It should be noted in the image coding device according to the thirdembodiment that a picture is not necessarily divided into slices. It ispossible to use a more appropriate symbol occurrence probability, evenif a picture is not divided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the third embodiment may code a target macroblockbased on a symbol occurrence probability table only of macroblockswithin the same slice. In other words, in the same manner for thesituation where a target macroblock is at the far end of a picture, theimage coding device according to the third embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder.

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the third embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the third embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the third embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example.

It should also be noted that it has been described in the thirdembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the third embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the third embodiment that the coding is basedon H.264 standard, but the coding may be based on any other similarstandards.

It should also be noted in the third embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

Fourth Embodiment

First, the description is given for a summary of an image coding deviceaccording to the fourth embodiment of the present invention. The imagecoding device according to the fourth embodiment differs from the imagecoding device according to the third embodiment in that a position of animage for which a symbol occurrence probability table is outputted isspatially closer to a position of an image which is coded based on theoutputted symbol occurrence probability table. Thereby, the image codingdevice according to the fourth embodiment can further improve codingefficiency.

This is the summary of the image coding device according to the fourthembodiment.

Since the structure of the image coding device according to the fourthembodiment is the same as the structure of the image coding deviceaccording to the third embodiment, it will be not explained again.

The processing performed by the image coding device according to thefourth embodiment differs from the processing performed by the imagecoding device according to the third embodiment in the symbol occurrenceprobability calculation at S150 in FIG. 12 and the symbol occurrenceprobability outputting at S155 in FIG. 12.

The image coding device according to the third embodiment codes a targetmacroblock based on symbol occurrence probability table(s) outputted atthe time of completing coding of neighboring macroblock(s). In the thirdembodiment, as obvious from FIG. 16, in terms of images each having 8pixels×8 pixels, a position of an image for which a symbol occurrenceprobability table is outputted is not spatially close to a position of atarget image. Therefore, the image coding device according to the fourthembodiment codes a target image based on a symbol occurrence probabilitytable that is updated at the time of processing an image that ispositioned spatially closer to the target image.

Symbol occurrence probability outputting at S155 in FIG. 12 according tothe fourth embodiment is described with a flowchart of FIG. 18. As shownin FIG. 18, at the beginning, the arithmetic coding unit 1 determineswhether or not there is a macroblock at the immediate right of a targetmacroblock (hereinafter, referred to also as a “right macroblock”)(S180). If there is a macroblock at the immediate right of the targetmacroblock (Yes at S180), then the arithmetic coding unit 1 furtherdetermines whether or not a sub-block 1 in the right macroblock hasalready been coded (S181).

If the sub-block 1 has already been coded (Yes at S181), the symboloccurrence probability storage unit 4 outputs a symbol occurrenceprobability table to be used in the right macroblock (S182). On theother hand, if there is no macroblock at the immediate right of thetarget macroblock (No at S180), or if the sub-block 1 has not yet beencoded (No at S181), then the arithmetic coding unit 1 proceeds to a nextstep.

Next, the arithmetic coding unit 1 determines whether or not there is amacroblock immediately below the target macroblock (hereinafter,referred to also as an “immediately-below macroblock”) (S183). If thereis a macroblock immediately below the target macroblock (Yes at S183),then the arithmetic coding unit 1 further determines whether or not asub-block 2 in the immediately-below macroblock has already been coded(S184).

If the sub-block 2 has already been coded (Yes at S184), the symboloccurrence probability storage unit 4 outputs a symbol occurrenceprobability table to be used in the immediately-below macroblock (S185).On the other hand, if there is no macroblock immediately below thetarget macroblock (No at S183), or if the sub-block 2 has not yet beencoded (No at S184), then the arithmetic coding unit 1 completes theprocessing.

Moreover, in the symbol occurrence probability calculation at S150 inFIG. 12, the symbol occurrence probability calculation unit 7 codes thetarget macroblock by using the symbol occurrence probability tableoutputted for the right macroblock (S182 in FIG. 18), when a symboloccurrence probability table of the left macroblock is used in thecoding. In addition, the symbol occurrence probability calculation unit7 codes the target macroblock by using the symbol occurrence probabilitytable outputted for the immediately-below macroblock (S185 in FIG. 18),when a symbol occurrence probability table of the immediately-abovemacroblock is used in the coding.

By the above-described processing, as shown in FIG. 19, a symboloccurrence probability table is outputted at the time of completingcoding of the sub-block 2 (B in FIG. 19) among sub-blocks each having 8pixels×8 pixels included in the immediately-above macroblock. Inaddition, a symbol occurrence probability table is outputted at the timeof completing coding of the sub-block 1 (A in FIG. 19) among sub-blockseach having 8 pixels×8 pixels included in the left macroblock.

Then, at the time of starting the target sub-block (X in FIG. 19), thesymbol occurrence probability calculation unit 7 averages the twooutputted symbol occurrence probability tables and writes the averagedtable into the symbol occurrence probability storage unit 4.

This is the description for the image coding device according to thefourth embodiment.

As described above, the image coding device according to the fourthembodiment codes a target image based on a symbol occurrence probabilitytable outputted (generated) at the time of processing an neighboringimage having 8 pixels×8 pixels positioned closer to the target image,and the symbol occurrence probability table has been outputted at thetime of completing coding of the neighboring image, not at the time ofcompleting coding of the macroblock including the neighboring image. Inaddition, the image coding device according to the fourth embodimentcodes the target image based on a symbol occurrence probability tablegenerated by averaging two symbol occurrence probability tables obtainedfrom the immediately-above and immediately-left images.

Thereby, the image coding device according to the fourth embodiment cancode a target image based on a symbol occurrence probability of imagethat is the spatially closest to the target image. As a result, it ispossible to achieve higher coding efficiency.

It should be noted in the image coding device according to the fourthembodiment that a picture is not necessarily divided into slices. Theimage coding device according to the fourth embodiment can use a moreappropriate symbol occurrence probability, even if a picture is notdivided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the fourth embodiment may code a target image basedon a symbol occurrence probability table that is to be used to codeimages only in the same slice. In other words, in the same manner forthe situation where a target macroblock is at the far end of a picture,the image coding device according to the fourth embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder.

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the fourth embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the fourth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the fourth embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the fourthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the fourth embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the fourth embodiment that the coding isbased on H.264 standard, but the coding may be based on any othersimilar standards.

It should also be noted in the fourth embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

It should also be noted in the fourth embodiment that a symboloccurrence probability is calculated for the first sub-block of thetarget macroblock. However, a symbol occurrence probability may becalculated in units of smaller images such as bocks each having 8 pixelsand 8 pixels.

Fifth Embodiment

First, the description is given for a summary of an image coding deviceaccording to the fifth embodiment of the present invention. The imagecoding device according to the fifth embodiment codes a targetmacroblock based on a symbol occurrence probability table of amacroblock spatially positioned at the immediate upper left of thetarget macroblock (hereinafter, referred to also as an “upper-leftmacroblock”), as the upper-left macroblock is regarded as a positionspatially close to the target macroblock. Therefore, like the imagecoding device according to the third embodiment, the image coding deviceaccording to the fifth embodiment uses information of image positionedspatially close to target image. However, the image coding deviceaccording to the fifth embodiment differs from the image coding deviceaccording to the third embodiment in shortening a delay in the codingprocessing.

This is the summary of the image coding device according to the fifthembodiment.

Since the structure of the image coding device according to the fifthembodiment is the same as the structure of the image coding deviceaccording to the third embodiment, it will be not explained again.

The following describes processing performed by the image coding deviceaccording to the fifth embodiment. The processing performed by the imagecoding device according to the fifth embodiment differs from theprocessing performed by the image coding device according to the thirdembodiment in the symbol occurrence probability calculation at S150 inFIG. 12.

Symbol occurrence probability calculation at S150 in FIG. 12 accordingto the fifth embodiment is described with a flowchart of FIG. 20. Asshown in FIG. 20, at the beginning, the arithmetic coding unit 1determines whether or not there is a macroblock at the immediate upperleft of a target macroblock (hereinafter, referred to also as an“upper-left macroblock”) (S190). If there is a macroblock at the upperleft of the target macroblock (Yes at S190), this means that there isdefinitely a macroblock at the immediate left of the target macroblock.Therefore, the symbol occurrence probability calculation unit 7 averagestwo symbol occurrence probabilities of the upper-left macroblock and theleft macroblock to calculate a new symbol occurrence probability, andwrites the calculated symbol occurrence probability into the symboloccurrence probability storage unit 4 (S191). Here, the method for theaveraging is the same as the method described in the third embodiment.

On the other hand, if there is no macroblock at the immediate upper leftof the target macroblock (No at S190), then the arithmetic coding unit 1further determines whether or not there is a macroblock immediatelyabove the target macroblock (S192). If there is a macroblock immediatelyabove the target macroblock (Yes at S192), then the symbol occurrenceprobability calculation unit 7 writes a symbol occurrence probabilitytable of the immediately-above macroblock into the symbol occurrenceprobability storage unit 4 (S193).

On the other hand, if there is no macroblock immediately above thetarget macroblock (No at S192), then the arithmetic coding unit 1further determines whether or not there is a macroblock at the immediateleft of the target macroblock (S194). If there is a macroblockimmediately above the target macroblock (Yes at S194), then the symboloccurrence probability calculation unit 7 writes a symbol occurrenceprobability table of the left macroblock into the symbol occurrenceprobability storage unit 4 (S195).

If there is no macroblock at the immediate left of the target macroblock(No at S194), this means that there is no macroblock at the left of norimmediately above the target macroblock. Therefore, the arithmeticcoding unit 1 initializes the symbol occurrence probability table usingthe method defined by H. 264 standard, and writes the initialized tableinto the symbol occurrence probability storage unit 4 (S196). It ispossible that the symbol occurrence probability storage unit 4initializes the stored symbol occurrence probability table. For theinitialization of a symbol occurrence probability table, it is alsopossible that the symbol occurrence probability calculation unit 7generates an initialized symbol occurrence probability table and writesthe generated table into the symbol occurrence probability storage unit4.

By the above-described processing, as shown in FIG. 21, a symboloccurrence probability table is outputted at the time of completingcoding of the upper-left macroblock, namely, at the time of completingcoding of a sub-block 3 (B in FIG. 21) among sub-blocks each having 8pixels×8 pixels included in the upper-left macroblock. In addition, asymbol occurrence probability table is outputted at the time ofcompleting coding of the left macroblock, namely, at the time ofcompleting coding of a sub-block 3 (A in FIG. 21) among sub-blocks eachhaving 8 pixels×8 pixels included in the left macroblock. Then, at thetime of starting the target macroblock (X in FIG. 21), the symboloccurrence probability calculation unit 7 averages the two outputtedsymbol occurrence probability tables and writes the averaged table intothe symbol occurrence probability storage unit 4.

This is description for the processing performed by the image codingdevice according to the fifth embodiment.

As described above, the image coding device according to the fifthembodiment codes a target macroblock based on a symbol occurrenceprobability table outputted (obtained) at the time of completing codingof the upper-left macroblock, namely, at the time of completing codingof the sub-block 3 in the upper-left macroblock, as the symboloccurrence probability table of the immediately-above macroblock. Ingeneral, images are coded in an order from left to right. Therefore, theimage coding device according to the fifth embodiment can start codingearlier, and thereby shorten a delay of the coding.

Moreover, in comparison to the third embodiment where a target image iscoded based on a symbol occurrence probability table outputted(obtained) at the time of completing coding of a macroblock, namely, atthe time of completing coding of the sub-block 3 in the macroblock, thefifth embodiment codes a target image based on a symbol occurrenceprobability table outputted at the time of completing coding of an imagethat is spatially far from the target image by the same distance as thatin the third embodiment. Therefore, the image coding device according tothe fifth embodiment can shorten a delay in coding to achieve the samecoding efficiency as that in the third embodiment.

It should be noted in the image coding device according to the fifthembodiment that a picture is not necessarily divided into slices. It ispossible to use a more appropriate symbol occurrence probability, evenif a picture is not divided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the fifth embodiment may code a target macroblockbased on a symbol occurrence probability table only of macroblockswithin the same slice. In other words, in the same manner for thesituation where a target macroblock is at the far end of a picture, theimage coding device according to the fifth embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the fifth embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the fifth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the fifth embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the fifthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the fifth embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the fifth embodiment that the coding is basedon H.264 standard, but the coding may be based on any other similarstandards.

It should also be noted in the fifth embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

It should also be noted in the fifth embodiment that a symbol occurrenceprobability is calculated for the first sub-block of the targetmacroblock. However, a symbol occurrence probability may be calculatedin units of smaller images such as bocks each having 8 pixels and 8pixels.

Sixth Embodiment

Here, the description is given for a summary of an image coding deviceaccording to the sixth embodiment of the present invention. The imagecoding device according to the sixth embodiment codes a target imagebased on (a) a symbol occurrence probability table outputted at the timeof completing coding of an upper-left macroblock and (b) a symboloccurrence probability table outputted at the time of completing codingof a sub-block 1 in a left macroblock. Thereby, the image coding deviceaccording to the sixth embodiment codes a target image based on a symboloccurrence probability table of image that is spatially positionedcloser to the target image in comparison to the image coding deviceaccording to the fifth embodiment. As a result, the image coding deviceaccording to the sixth embodiment can further improve coding efficiency.

This is the summary of the image coding device according to the sixthembodiment.

Since the structure of the image coding device according to the sixthembodiment is the same as the structure of the image coding deviceaccording to the fifth embodiment, it will be not explained again.

The following describes processing performed by the image coding deviceaccording to the sixth embodiment. The processing performed by the imagecoding device according to the sixth embodiment differs from theprocessing performed by the image coding device according to the fifthembodiment in the symbol occurrence probability outputting at S155 inFIG. 12.

Symbol occurrence probability outputting at S155 in FIG. 12 according tothe sixth embodiment is described with a flowchart of FIG. 22. As shownin FIG. 22, at the beginning, the arithmetic coding unit 1 determineswhether or not there is a macroblock at the immediate right of a targetmacroblock (S200).

If there is a macroblock at the immediate right of the target macroblock(Yes at S200), then the arithmetic coding unit 1 further determineswhether or not a sub-block 1 in the target macroblock has already beencoded (S201). If the sub-block 1 has already been coded (Yes at S201),the symbol occurrence probability storage unit 4 outputs a symboloccurrence probability table to be used for the right macroblock (S202).On the other hand, if there is no macroblock at the immediate right ofthe target macroblock (No at S200), or if the sub-block 1 has not yetbeen coded (No at S201), then the arithmetic coding unit 1 proceeds to anext step.

Next, the arithmetic coding unit 1 determines whether or not there is amacroblock immediately below the target macroblock (S203). If there is amacroblock immediately below the target macroblock (Yes at S203), thenthe arithmetic coding unit 1 further determines whether or not asub-block 3 in the target macroblock has already been coded (S204). Ifthe sub-block 3 has already been coded (Yes at S204), the symboloccurrence probability storage unit 4 outputs a symbol occurrenceprobability table to be used for the immediately-below macroblock(S205). If there is no macroblock immediately below the targetmacroblock (No at S203), or if the sub-block 3 in the target macroblockhas not yet been coded (No at S204), then the processing is completed.

By the above-described processing, as shown in FIG. 23, a symboloccurrence probability table is outputted at the time of completingcoding of a sub-block 3 (B in FIG. 23) among sub-blocks each having 8pixels×8 pixels included in the upper-left macroblock of the targetmacroblock. In addition, a symbol occurrence probability table isoutputted at the time of completing coding of a sub-block 1 (A in FIG.23) among sub-blocks each having 8 pixels×8 pixels included in the leftmacroblock of the target macroblock.

Then, at the time of starting the target macroblock (X in FIG. 23), theimage coding device according to the sixth embodiment writes a newsymbol occurrence probability table into the symbol occurrenceprobability storage unit 4. The new symbol occurrence probability tableis generated by averaging the outputted two symbol occurrenceprobability tables.

Moreover, in the symbol occurrence probability calculation at S150 inFIG. 12, the symbol occurrence probability calculation unit 7 codes thetarget macroblock by using the symbol occurrence probability tableoutputted for the right macroblock (S202 in FIG. 22), when a symboloccurrence probability table of the immediate left macroblock is used inthe coding. In addition, the symbol occurrence probability calculationunit 7 codes the target macroblock by using the symbol occurrenceprobability table outputted for the immediately-below macroblock (S205in FIG. 22), when a symbol occurrence probability table of theimmediately-above macroblock is used in the coding.

This is description for the processing performed by the image codingdevice according to the sixth embodiment.

As described above, the image coding device according to the sixthembodiment codes a target macroblock based on a symbol occurrenceprobability table outputted at the time of completing coding of asub-block 1 that is spatially closer in the left macroblock incomparison to the image coding device according to the fifth embodiment.Thereby, the image coding device according to the sixth embodiment canimprove coding efficiency more than the image coding device according tothe fifth embodiment.

It should be noted in the image coding device according to the sixthembodiment that a picture is not necessarily divided into slices. It ispossible to use a more appropriate symbol occurrence probability, evenif a picture is not divided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the sixth embodiment may code a target macroblockbased on a symbol occurrence probability table only of macroblockswithin the same slice. In other words, in the same manner for thesituation where a target macroblock is at the far end of a picture, theimage coding device according to the sixth embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder.

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the sixth embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the sixth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the sixth embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the sixthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the sixth embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the sixth embodiment that the coding is basedon H.264 standard, but the coding may be based on any other similarstandards.

It should also be noted in the sixth embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

It should also be noted in the sixth embodiment that a symbol occurrenceprobability is calculated for the first sub-block in the targetmacroblock. However, a symbol occurrence probability may be calculatedin units of smaller images such as bocks each having 8 pixels and 8pixels.

Seventh Embodiment

Here, the description is given for a summary of an image coding deviceaccording to the seventh embodiment of the present invention. The imagecoding device according to any of the above-described embodiments usesarithmetic averaging to calculate a new symbol occurrence probabilitytable from two symbol occurrence probability tables. The image codingdevice according to the seventh embodiment, however, weighs a symboloccurrence probability table of an image that is spatially closer to atarget macroblock, depending on a distance from the target macroblock.Thereby, in the seventh embodiment, the target macroblock is coded basedon a symbol occurrence probability table that is more appropriate thanthat in the sixth embodiment. Therefore, coding efficiency is improved.

This is the summary of the image coding device according to the seventhembodiment.

Since the structure of the image coding device according to the seventhembodiment is the same as the structure of the image coding deviceaccording to the sixth embodiment, it will be not explained again.

The following describes processing performed by the image coding deviceaccording to the seventh embodiment. The processing performed by theimage coding device according to the seventh embodiment differs from theprocessing performed by the image coding device according to the sixthembodiment in the symbol occurrence probability calculation at S150 inFIG. 12. More specifically, the processing performed by the image codingdevice according to the seventh embodiment differs from the processingperformed by the image coding device according to the sixth embodimentin the step S191 of averaging symbol occurrence probabilities of theupper-left macroblock and the left macroblock in the symbol occurrenceprobability calculation S150 in the flow of FIG. 20.

Like the third embodiment, the sixth embodiment uses the arithmeticaveraging determined by Equation 1. However, the seventh embodiment usesweighted averaging determined by Equation 2 given below. In Equation 2,pStateIdxA denotes a symbol occurrence probability of an upper-leftmacroblock, and valMPSA denotes a symbol of the upper-left macroblock.Furthermore, pStateIdxB denotes a symbol occurrence probability of aleft macroblock, and valMPSB denotes a symbol of the left macroblock. InEquation 2, “a” denotes a spatial distance between: a sub-block 0 thatis the first sub-block in a target macroblock; and a sub-block 3 in theupper-left macroblock. In Equation 2, “b” denotes a spatial distancebetween: the sub-block 0 that is the first sub-block in the targetmacroblock; and a sub-block 1 in the left macroblock. pStateIdx denotesa symbol occurrence probability of a macroblock for which a symboloccurrence probability is to be calculated, and valMPS denotes a symbolof the macroblock.

$\begin{matrix}{{if}\mspace{20mu}{\left( {{valMPSA}=={valMPSB}} \right)\mspace{14mu}\left\lbrack \mspace{20mu}{{{pStateIdx} = {\left( \mspace{14mu}{{{pStateIdxA} \times b} + \mspace{20mu}{{pStateIdxB} \times a}}\mspace{14mu} \right)\mspace{11mu}/\mspace{11mu}\left( {a + b} \right)}};\mspace{20mu}{{valMPS} = {valMPSA}};} \right\rbrack}\mspace{14mu}{{else}\mspace{14mu}\left\lbrack \mspace{20mu}{{{pStateIdx}\; = \;{\left( {{{- {pStateIdxA}} \times b} + \mspace{20mu}{{pStateIdxB} \times a}} \right)/\left( {a + b} \right)}};\mspace{20mu}{{valMPS} = {valMPSB}};\mspace{20mu}{{if}\mspace{14mu}{\left( {{pStateIdx} < 0} \right)\mspace{14mu}\left\lbrack \mspace{40mu}{{{pStateIdx} = {- {pStateIdx}}};\mspace{40mu}{{valMPS} = {valMPSA}};}\mspace{20mu} \right\rbrack}}} \right\rbrack}} & \left( {{Equation}\mspace{14mu} 2} \right)\end{matrix}$

As determined by Equation 2, each symbol occurrence probability isweighted by a spatial distance. As shown in FIG. 24, a distance betweentwo sub-blocks is determined based on a center position of each of thesub-blocks, for example.

A distance between a sub-block 3 (B in FIG. 24) in an upper-leftmacroblock and a sub-block 0 (X in FIG. 24) in a target macroblock islonger than a distance between a sub-block 1 (A in FIG. 24) in a leftmacroblock and the sub-block 0 (X in FIG. 24) in the target macroblock.Therefore, the symbol occurrence probability calculation unit 7calculates a symbol occurrence probability so that influence to thesymbol occurrence probability is reduced in proportion to a distance tothe target macroblock.

This is description for the processing performed by the image codingdevice according to the seventh embodiment.

As described above, the image coding device according to the seventhembodiment executes weighted averaging based on a spatial distance.Thereby, contribution of a symbol occurrence probability of an imagespatially closer to a target image is greater, and contribution of asymbol occurrence probability of an image spatially farther to thetarget image is smaller. Therefore, a symbol occurrence probabilitytable is more appropriate, and higher coding efficiency than that in thesixth embodiment is achieved.

It should be noted in the seventh embodiment that weighted averaging isapplied to the symbol occurrence probability calculation according tothe sixth embodiment. However, it is also possible to apply the weightedaveraging to the symbol occurrence probability calculation according toany of the third, fourth, and fifth embodiments.

It should be noted in the image coding device according to the seventhembodiment that a picture is not necessarily divided into slices. It ispossible to use a more appropriate symbol occurrence probability, evenif a picture is not divided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the seventh embodiment may code a target macroblockbased on a symbol occurrence probability table only of macroblockswithin the same slice. In other words, in the same manner for thesituation where a target macroblock is at the far end of a picture, theimage coding device according to the seventh embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder.

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the seventh embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the seventh embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the seventh embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the seventhembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the seventh embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the seventh embodiment that the coding isbased on H.264 standard, but the coding may be based on any othersimilar standards.

It should also be noted in the seventh embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

It should also be noted in the seventh embodiment that a symboloccurrence probability is calculated for the first sub-block in thetarget macroblock. However, a symbol occurrence probability may becalculated in units of smaller images such as bocks each having 8 pixelsand 8 pixels.

Eighth Embodiment

Here, the description is given for a summary of an image coding deviceaccording to the eighth embodiment of the present invention. It has beendescribed in the third embodiment that the image coding device codes atarget macroblock based on a symbol occurrence probability table that isalways calculated from symbol occurrence probability tables of animmediately-above macroblock and a left macroblock. This method canimprove coding efficiency. However, the image coding device according tothe third embodiment needs to hold a large number of symbol occurrenceprobability tables of macroblocks above the target macroblock. The imagecoding device according to the eighth embodiment restricts use of asymbol occurrence probability table immediately above a targetmacroblock. As a result, it is possible to reduce the number of storedsymbol occurrence probability tables.

This is the summary of the image coding device according to the eighthembodiment.

Since the structure of the image coding device according to the eighthembodiment is the same as the structure of the image coding deviceaccording to the third embodiment, it will be not explained again.

The following describes a structure of the image coding device accordingto the eighth embodiment. The processing performed by the image codingdevice according to the eighth embodiment differs from the processingperformed by the image coding device according to the third embodimentin the symbol occurrence probability calculation at S150 in FIG. 12 andthe symbol occurrence probability outputting at S155 in FIG. 12.

The symbol occurrence probability calculation at S150 in FIG. 12according to the eighth embodiment is described with reference to FIG.25. At the beginning, the arithmetic coding unit 1 determines whether ornot a horizontal position of a pixel at the immediately upper left of atarget macroblock is 64N (where N is a natural number) (S210). If thehorizontal position is 64N (Yes at S210), then the arithmetic codingunit 1 determines whether or not there is a macroblock immediately abovethe target macroblock (S211). If there is a macroblock immediately abovethe target macroblock (Yes at S211), then the arithmetic coding unit 1determines whether or not there is a macroblock at the immediately leftof the target macroblock (S212).

If there is a macroblock at the immediate left of the macroblock (Yes atS212), this means that the horizontal position is 64N and there aremacroblocks immediately above and at the left of the target macroblock.In this case, the symbol occurrence probability calculation unit 7averages two symbol occurrence probabilities obtained from theimmediately-above macroblock and the left macroblock according toEquation 1 to calculate a symbol occurrence probability table. Then, thesymbol occurrence probability calculation unit 7 writes the calculatedsymbol occurrence probability table into the symbol occurrenceprobability storage unit 4 (S213).

On the other hand, if there is no macroblock at the immediate left ofthe target macroblock (No at S212), this means that the horizontalposition is 64N and there is a macroblock immediately above the targetmacroblock but not at the left of the target macroblock. In this case,the symbol occurrence probability calculation unit 7 writes the symboloccurrence probability table of the immediately-above macroblockdirectly into the symbol occurrence probability storage unit 4 (S214).

On the other hand, if the horizontal position is not 64N (No at S210) orif there is no macroblock immediately above the target macroblock (NoS211), then the arithmetic coding unit 1 determines whether or not thereis a macroblock at the immediate left of the target macroblock (S215).If there is a macroblock at the immediate left of the target macroblock(Yes at S215), then the symbol occurrence probability calculation unit 7writes the symbol occurrence probability table of the left macroblockdirectly into the symbol occurrence probability storage unit 4 (S216).

If there is no macroblock at the immediate left of the target macroblock(No at S215), this means that there is no macroblock immediately abovenor at the left of the target macroblock. In this case, the arithmeticcoding unit 1 initializes a symbol occurrence probability table (S217).The initialization may be the method defined by H. 264 standard. It ispossible that the symbol occurrence probability storage unit 4initializes the stored symbol occurrence probability table. For theinitialization of a symbol occurrence probability table, it is alsopossible that the symbol occurrence probability calculation unit 7generates an initialized symbol occurrence probability table and writesthe generated table into the symbol occurrence probability storage unit4.

The symbol occurrence probability outputting at S155 in FIG. 12according to the eighth embodiment is described with reference to aflowchart of FIG. 26. As shown in FIG. 26, at the beginning, thearithmetic coding unit 1 determines whether or not a horizontal positionof a pixel at the immediately upper left of a target macroblock is 64N(where N is a natural number) (S220). If the horizontal position is 64N(Yes at S220), then the arithmetic coding unit 1 determines whether ornot there is a macroblock at the immediate right of or immediately belowthe target macroblock (S221). If there is neither macroblock at theimmediately right of nor immediately below the target macroblock (No atS221), then the arithmetic coding unit 1 completes the processing.

On the other hand, if the horizontal position is not 64N (No at S220),then the arithmetic coding unit 1 determines whether or not there is amacroblock at the immediate right of the target macroblock (S222). Ifthere is no macroblock at the immediate right of the target macroblock(No at S222), then the arithmetic coding unit 1 completes theprocessing.

If the horizontal position is 64N and there is a macroblock at theimmediate right of or immediately below the target macroblock (Yes atS221), or if the horizontal position is not 64N and there is amacroblock only at the right of the target macroblock (Yes at S222),then the arithmetic coding unit 1 determines whether or not the targetmacroblock has already been coded (S223). If the target macroblock hasnot yet been coded (No at S223), then the arithmetic coding unit 1completes the processing. On the other hand, if the target macroblockhas already been coded (Yes at S223), then the arithmetic coding unit 1outputs a symbol occurrence probability table of the target macroblock(S224).

The processing for an entire picture is described with reference to FIG.27A. As shown in FIG. 27A, it is assumed that a picture is divided intofour slices, and that each of the slices is divided into macroblockseach having 16 pixels×16 pixels. Each of shaded macroblocks in FIG. 27Ashows a macroblock for which a symbol occurrence probability table is tobe calculated using a symbol occurrence probability table of amacroblock immediately above the macroblock. Each of top macroblocks ina picture is not coded based on a symbol occurrence probability table ofa macroblock immediately above the top macroblock, because there is nomacroblock above the top macroblock. Regarding other macroblocks exceptthe top macroblocks, one of four macroblocks in a horizontal directionis coded based on a symbol occurrence probability table of a macroblockimmediately above the macroblock.

Here, it is assumed as shown in FIG. 27B that the arithmetic coding unit1 processes a slice 0 and the arithmetic coding unit 2 processes a slice1. Under the assumption, the arithmetic coding unit 1 starts processinga slice 2 after processing the slice 0. Numerals assigned to macroblocksin FIG. 27B represent order of coding the macroblocks by the arithmeticcoding units 1 and 2. Here, when the arithmetic coding unit 1 codes amacroblock 24 in the slice 2, the coding needs a symbol occurrenceprobability table of a macroblock 5 in the slice 1. More specifically,during processing of the slice 1, the arithmetic coding unit 2 needs tokeep holding symbol occurrence probability tables of macroblocksarranged in a horizontal direction from the macroblock 5 on the far leftof the slice 1. In the eighth embodiment, however, the symbol occurrenceprobability tables are held only for every four macroblocks. As aresult, the held symbol occurrence probability tables are reduced to onequarter.

Moreover, a symbol occurrence probability table should be exchangedbetween the arithmetic coding unit 1 and the arithmetic coding unit 2only when a macroblock is coded based on information of a macroblock ina different slice. Therefore, the example shown in FIG. 28 is alsopossible. Regarding macroblocks having an upper border that is a sliceborder, one of four macroblocks is coded based on a symbol occurrenceprobability table of a corresponding immediately-above macroblock. Onthe other hand, regarding the other macroblocks in the same slice, eachof the macroblocks is coded based on a symbol occurrence probabilitytable of a corresponding immediately-above macroblock.

This is the description for processing performed by the image codingdevice according to the eighth embodiment.

As described above, the image coding device according to the eighthembodiment restricts use of a symbol occurrence probability table of animmediately-above macroblock only for every four macroblocks in ahorizontal direction. The image coding device according to the eighthembodiment codes a target macroblock based on a symbol occurrenceprobability table of a macroblock positioned spatially closer to thetarget macroblock. Thereby, the image coding device according to theeighth embodiment can improve coding efficiency and reduce the heldsymbol occurrence probability tables.

It should be noted that the eighth embodiment may use weight averagingin the same manner as described in the seventh embodiment.

It should also be noted in the image coding device according to theeighth embodiment that a picture is not necessarily divided into slices.It is possible to use a more appropriate symbol occurrence probability,even if a picture is not divided into slices as shown in FIG. 17A.

It should also be noted that, as shown in FIG. 17B, the image codingdevice according to the eighth embodiment may code a target macroblockbased on a symbol occurrence probability table only of macroblockswithin the same slice. In other words, in the same manner for thesituation where a target macroblock is at the far end of a picture, theimage coding device according to the eighth embodiment may not use asymbol occurrence probability table that is used to code a macroblock ina different slice, even if a target macroblock is adjacent to a sliceborder.

It should also be noted as shown in FIG. 17C in that the image codingdevice according to the eighth embodiment can use a more appropriatesymbol occurrence probability even in cording order that is raster orderused in H.264 standard or the like.

Especially, when images are coded in raster order as shown in FIG. 17Cand the target macroblock X positioned on the far left of a picture iscoded based on a symbol occurrence probability table updated for themacroblock B that is spatially close to the target macroblock as shownin FIG. 17A, it is possible to improve coding efficiency.

It should also be noted in the eighth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the eighth embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example. Each of the sub-blocks, which are finer than themacroblocks, may have any size, such as 2 pixels×2 pixels or 4 pixels×4pixels.

It should also be noted that it has been described in the eighthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the eighth embodiment that the abovedescription has been given for coding, but it is, of course, possible toperform decoding by reversing the steps in the coding.

It should also be noted in the eighth embodiment that the coding isbased on H.264 standard, but the coding may be based on any othersimilar standards.

It should also be noted in the eighth embodiment that the image codingdevice uses pStateIdx to calculate a symbol occurrence probability.However, pStateIdx does not linearly correspond to an actual symboloccurrence probability. It is therefore possible that the image codingdevice transforms pStateIdx into an actual symbol occurrence probabilityto be used in the calculation, and then inversely transforms the symboloccurrence probability to the original pStateIdx. It is also possiblethat the image coding device calculates a symbol occurrence probabilityby using a table that is used to calculate a symbol occurrenceprobability for each pair of pStateIdx values.

It should also be noted in the eighth embodiment that a symboloccurrence probability is calculated for the first macroblock includedin each slice or picture. However, a symbol occurrence probability maybe calculated in units of smaller images such as bocks each having 8pixels and 8 pixels.

It should also be noted in the eighth embodiment that one of fourmacroblocks is coded based on a symbol occurrence probability table of acorresponding immediately-above macroblock. However, it is also possiblethat one of any other number of macroblocks, for example, one of twomacroblocks or one of eight macroblocks, may be coded based on a symboloccurrence probability table of a corresponding immediately-abovemacroblock. The determination as to whether or not to code a targetmacroblock based on a symbol occurrence probability table of animmediately-above macroblock may be made according to a spatial positionof the target macroblock, or according to any other conditions.

Ninth Embodiment

First, the description is given for a summary of an image coding deviceaccording to the ninth embodiment of the present invention. The imagecoding device according to the ninth embodiment combines the arithmeticcoding described in the first embodiment with pixel coding.

This is the summary of the image coding device according to the ninthembodiment.

The following describes processing performed by the image coding deviceaccording to the ninth embodiment. FIG. 29 shows a structure of theimage coding device according to the ninth embodiment. The image codingdevice according to the ninth embodiment includes a frame memory 23,pixel coding unit 21 and 22, the arithmetic coding units 1 and 2, aneighbor information memory 34, and bitstream buffers 24 and 25.

The frame memory 23 stores input images and locally decoded images. Eachof the pixel coding units 21 and 22 retrieves a part of an image fromthe frame memory and codes the retrieved part. Each of the arithmeticcoding units 1 and 2 performs arithmetic coding. The neighborinformation memory 34 stores information of neighboring macroblocks of atarget macroblock. The information is used in coding of the targetmacroblock. Each of the bitstream buffers 24 and 25 stores a codedbitstream that has been arithmetic coded.

An internal structure of each of the arithmetic coding units 1 and 2 isthe same as shown in FIG. 2 according to the first embodiment.Therefore, it will not be described again.

FIG. 30 is a block diagram of the pixel coding unit 21 according to theninth embodiment. The units in FIG. 30 which are identical to the unitsin FIG. 29 will not be described again. The pixel coding unit 21includes a motion estimation unit 35, a motion compensation unit 36, anintra-picture prediction unit 26, a differential calculation unit 28, afrequency transform unit 29, a quantization unit 30, an inversequantization unit 31, an inverse frequency transform unit 32, areconstruction unit 33, and a deblocking filter unit 27. The motionestimation unit 35 performs motion estimation.

The motion compensation unit 36 performs motion compensation based on amotion vector generated by the motion estimation, thereby generating aprediction image. The intra-picture prediction unit 26 performsintra-picture prediction to generate another prediction image. Thedifferential calculation unit 28 generates a difference between an inputimage and a prediction image. The frequency transform unit 29 performsfrequency transform. The quantization unit 30 performs quantization toreach a target bit rate depending on a generated coding amount. Theinverse quantization unit 31 performs inverse quantization. The inversefrequency transform unit 32 performs inverse frequency transform. Thereconstruction unit 33 reconstructs an image from a prediction image anda result of inverse frequency transform. The deblocking filter unit 27performs deblocking filtering on the reconstructed decoded result.

Here, the pixel coding unit 22 is the same as the pixel coding unit 21.Therefore, the pixel coding unit 22 is not shown in FIG. 30.

This is the description for the image coding device according to theninth embodiment.

The following describes processing performed by the image coding deviceaccording to the ninth embodiment.

FIG. 31 is a flowchart of pixel coding processing performed by the pixelcoding unit 21 shown in FIG. 29.

At the beginning, the motion estimation unit 35 estimates (detects) apart of a locally decoded picture which has the highest correlation witha target macroblock. Then, the motion compensation unit 36 generates aprediction image (S611).

Next, the intra-picture prediction unit 26 examines the neighborinformation memory for intra-picture prediction (S001). The neighborinformation examination at S001 is processing for determining whether ornot the neighbor information memory 34 stores information necessary forintra-picture prediction. The intra-picture prediction unit 26 generatesan intra-picture prediction image using images of neighboringmacroblocks shown in FIG. 32 (S612).

Next, the differential calculation unit 28 determines which has asmaller coding amount, an inter-picture prediction macroblock generatedby the motion estimation or an intra-picture prediction macroblockgenerated by the intra-picture prediction. Based on the determinationresult, the differential calculation unit 28 selects, as a coding mode,between the inter-picture prediction macroblock and the intra-pictureprediction macroblock, and calculates differential data between theselected prediction image and the target macroblock (S613).

If the inter-picture prediction macroblock is selected as the codingmode (Yes at S614), then the differential calculation unit 28 examinesthe neighbor information (S001). The neighbor information examination atS001 is processing for determining whether or not the neighborinformation memory 34 stores information necessary for calculation of adifferential motion vector.

If it is determined that the neighbor information memory 34 storesinformation necessary for calculation of a differential motion vector,then the differential calculation unit 28 calculates the differentialmotion vector (S615). In the differential motion vector calculation, mvdshown in FIG. 33 may be calculated.

When the differential motion vector has been calculated, thedifferential calculation unit 28 writes the calculated motion vectorinto the neighbor information memory 34 (S002). Here, the neighborinformation writing is performed if the neighbor information memory 34has an available space. Otherwise, the neighbor information writingwaits until the neighbor information memory 34 has an available space.

Next, the frequency transform unit 29 performs frequency transform ondifferential data which has been calculated by the differentialcalculation unit 28 (S616).

The quantization unit 30 quantizes the data on which the frequencytransform has been performed (S617). Here, the quantization unit 30decides a quantization parameter based on a generated coding amountwhich has been calculated by the arithmetic coding unit 1, and thenperforms quantization using the quantized parameter.

If the generated coding amount is predicted to be greater than apredetermined target coding amount, then the quantization unit 30increases a quantization width to reduce the generated coding amount. Onthe other hand, if the generated coding amount is predicted to besmaller than the predetermined target coding amount, the quantizationunit 30 decreases the quantization width to increase the generatedcoding amount. This feedback control causes the quantization unit 30 toadjust a generated coding amount to be closer to the target codingamount.

Eventually, the pixel coding performed by the pixel coding unit 21 forgenerating a coded stream is completed. However, local decoding isnecessary to match a reference image with a reference image in an imagedecoding device. Next, the local decoding is described.

In the local decoding, at the beginning, the inverse quantization unit31 performs inverse quantization on the target macroblock (S618).

Next, the inverse frequency transform unit 32 performs inverse frequencytransform on the target macroblock. (S619).

In the case of the inter-picture prediction macroblock, then thereconstruction unit 33 reconstructs an image from (a) the data on whichthe inverse frequency transform has been performed and (b) the referenceimage which has been generated by the motion compensation unit 36(S620). On the other hand, in the case of the intra-picture predictionmacroblock, then the reconstruction unit 33 reconstructs an image from(a) the data for which the inverse frequency transform has beenperformed and (b) the reference image which has been generated by theintra-picture prediction unit 26 (S620).

After the reconstruction, the reconstruction unit 33 performs neighborinformation writing for intra-picture prediction of a next macroblock(S002). Here, the neighbor information writing is performed if theneighbor information memory 34 has an available space. Otherwise, theneighbor information writing waits until the neighbor information memory34 has an available space.

Next, the deblocking filter unit 27 examines neighbor information fordeblocking filtering (S001). The neighbor information examination atS001 is processing for determining whether or not the neighborinformation memory 34 stores information necessary for deblockingfiltering.

If the neighbor information memory 34 stores information necessary fordeblocking filtering, then the deblocking filter unit 27 performsdeblocking filtering on the reconstructed image, and stores theresulting image into the frame memory 23 (S621).

After the deblocking filtering, the deblocking filter unit 27 performsneighbor information writing (S002). Then, the pixel coding unit 21completes the pixel coding. Here, the neighbor information writing isperformed if the neighbor information memory 34 has an available space.Otherwise, the neighbor information writing waits until the neighborinformation memory 34 has an available space.

The processing performed by the pixel coding unit 22 is the same as theprocessing performed by the pixel coding unit 21. Therefore, it will notbe described again.

Furthermore, the processing performed by each of the arithmetic codingunits 1 and 2 is the same as the processing described in the firstembodiment. Therefore, it will not be described again.

This is the description for the processing performed by the image codingdevice according to the ninth embodiment.

As described above, the image coding device according to the ninthembodiment can combine the arithmetic coding with the pixel coding.

It should be noted in the ninth embodiment that the aspect for realizingthe arithmetic coding may be any aspect in the above-describedembodiments.

It should also be noted in the ninth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the coding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the ninth embodiment that the image codingdevice codes image in units of macroblocks each having 16 pixels×16pixels. However, the image coding device may code image in units eachhaving 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16 pixels,for example.

It should also be noted that it has been described in the ninthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the ninth embodiment that the coding is basedon H.264 standard, but the coding may be based on any other similarstandards.

It should also be noted in the ninth embodiment that the storage unit inwhich data is stored is a memory or buffer, but the storage unit may beany type of a memory. The storage unit may be storage means using anydifferent schemes, such as a flip-flop and a hard disk.

It should also be noted that the image coding device according to theninth embodiment may be implemented as a hardware circuit or software ina processor. It should also be noted that the image coding deviceaccording to the ninth embodiment may be implemented in a plurality ofprocessors or in a single processor.

It should also be noted that the image coding device according to theninth embodiment includes the two bitstream buffers 24 and 25. Anotherprocessing unit in the image coding device may read two bitstreams fromthe two bitstream buffers 24 and 25, and convert the two bitstreams intoa single bitstream. In addition, a system encoder may read bitstreamsfrom the two bitstream buffers 24 and 25, and convert the bitstreamsinto a single bitstream.

Tenth Embodiment

Here, the description is given for a summary of an image decoding deviceaccording to the tenth embodiment of the present invention. The imagedecoding device according to the tenth embodiment corresponds to theimage coding device according to the ninth embodiment.

This is the summary of the image decoding device according to the tenthembodiment.

The following describes a structure of the image decoding deviceaccording to the tenth embodiment.

FIG. 34 is a structure of the image decoding device according to thetenth embodiment. The image decoding device according to the tenthembodiment includes a bitstream buffer 44, arithmetic decoding units 40and 41, pixel decoding units 42 and 43, a neighbor information memory46, and a frame memory 45. The bitstream buffer 44 stores codedbitstreams. Each of the arithmetic decoding units 40 and 41 performsarithmetic decoding. Each of the pixel decoding units 42 and 43 decodespixel data. The neighbor information memory 46 stores information ofneighboring macroblocks of a target macroblock. The information has beenused in coding of the target macroblock. The frame memory 45 storesdecoded images.

FIG. 35 shows an internal structure of the arithmetic decoding unit 40shown in FIG. 34. The arithmetic decoding unit 40 includes a symboloccurrence probability storage unit 47, a context control unit 48, abinary arithmetic decoder 49, and an inverse binarization unit 50. Thesymbol occurrence probability storage unit 47 stores symbol occurrenceprobabilities. The context control unit 48 determines which symboloccurrence probability is to be used among the symbol occurrenceprobabilities stored in the symbol occurrence probability storage unit47. Then, the context control unit 48 reads the determined symboloccurrence probability from the symbol occurrence probability storageunit 47. The binary arithmetic decoder 49 performs arithmetic decoding.The inverse binarization unit 50 converts binary-valued signal intonon-binary syntax element.

The arithmetic decoding unit 41 is the same as the arithmetic decodingunit 40. Therefore, the arithmetic decoding unit 41 will not bedescribed.

FIG. 36 is a block diagram of the pixel decoding unit 42 according tothe tenth embodiment. The units in FIG. 35 which are identical to theunits in FIG. 34 will not be described again. The pixel decoding unit 42includes an inverse quantization unit 51, an inverse frequency transformunit 52, a reconstruction unit 53, an intra-picture prediction unit 54,a motion vector calculation unit 55, a motion compensation unit 56, anda deblocking filter unit 57.

The inverse quantization unit 51 performs inverse quantization. Theinverse frequency transform unit 52 performs inverse frequencytransform. The reconstruction unit 53 reconstructs an image from (a)data on which the inverse frequency transform has been performed and (b)prediction data on which either motion compensation or intra-pictureprediction has been performed.

The intra-picture prediction unit 54 generates prediction data from animage on the upper part or left part of a picture. The motion vectorcalculation unit 55 calculates a motion vector. The motion compensationunit 56 obtains a reference image of the position indicated by themotion vector, and generates prediction data by filtering. Thedeblocking filter unit 57 filters data of the reconstructed image toreduce block noise.

Here, the inside structure of the pixel decoding unit 43 is the same asthat of the pixel decoding unit 42. Therefore, the pixel decoding unit43 is not shown in FIG. 36.

This is the description for the structure of the image decoding deviceaccording to the tenth embodiment.

The following describes processing performed by the image decodingdevice according to the tenth embodiment.

FIG. 37 is a flowchart of processing performed by the arithmeticdecoding unit shown in FIGS. 34 and 35. FIG. 37 shows decoding of onemacroblock.

As shown in FIG. 37, at the beginning, the arithmetic decoding unit 40according to the tenth embodiment initializes the symbol occurrenceprobabilities stored in the symbol occurrence probability storage unit47 (S700). The symbol occurrence probability initialization is the sameas the symbol occurrence probability initialization (S100) described inthe first embodiment with reference to FIG. 3. Therefore, it will not bedescribed again.

Then, the context control unit 48 controls a context using a methoddefined by H.264 standard (S701). The context control refers toprocessing of reading a symbol occurrence probability corresponding to atarget macroblock to be decoded from the symbol occurrence probabilitystorage unit 47 based on information of neighboring macroblock(s) of thetarget macroblock (neighbor information) and a bit position to bedecoded, and then providing the symbol occurrence probability to thebinary arithmetic decoder 49. Then, based on the symbol occurrenceprobability, the binary arithmetic decoder 49 arithmetic-decodes thetarget macroblock using a method defined by H.264 standard (S702).

The context control unit 48 stores an updated symbol occurrenceprobability, which results from the arithmetic decoding, into the symboloccurrence probability storage unit 47 (S703). Next, the inversebinarization unit 50 converts binary-valued signal into non-binarysyntax element using a method defined by H.264 standard (S704).

As needed, the arithmetic decoding unit 40 causes the symbol occurrenceprobability storage unit 47 to output a stored symbol occurrenceprobability (S705). The symbol occurrence probability outputting is thesame as the symbol occurrence probability outputting (S105) described inthe first embodiment with reference to FIG. 3. Therefore, it will not bedescribed again.

Next, the arithmetic decoding unit 40 determines whether or not thetarget macroblock has already been decoded (S706). If the targetmacroblock has already been decoded (Yes at S706), then the arithmeticdecoding unit 40 completes the processing. On the other hand, if thetarget macroblock has not yet been decoded (No at S706), then thearithmetic decoding unit 40 repeats the processing from the contextcontrol at S701.

Next, the processing performed by the pixel decoding unit 42 shown inFIGS. 34 and 36 is described with reference to flowcharts of FIGS. 38and 39.

At the beginning, the inverse quantization unit 51 inversely quantizesdata provided from the arithmetic decoding unit 40 (S710). Next, theinverse frequency transform unit 52 performs inverse frequency transformon the inversely-quantized data (S711).

Next, if a target macroblock to be decoded is an inter-pictureprediction macroblock (Yes at S712), then the motion vector calculationunit 55 examines whether or not the neighbor information memory 46stores information necessary for motion vector calculation (S001). Ifthe neighbor information memory 46 does not store information necessaryfor motion vector calculation, then the motion vector calculation unit55 waits until the necessary information is written into the neighborinformation memory 46.

On the other hand, if the neighbor information memory 46 stores theinformation necessary for motion vector calculation, then the motionvector calculation unit 55 calculates a motion vector using theinformation (S713).

FIG. 33 shows a summary of the motion vector calculation. A predictionmotion vector value mvp is calculated from an intermediate value ofmotion vectors mvA, mvB, and mvC of neighboring macroblocks. Then, adifferential motion vector value mvd in a stream is added to theprediction motion vector value mvp. As a result, a motion vector my isobtained.

After the motion vector calculation, the motion vector calculation unit55 examines whether or not the neighbor information memory 46 has anavailable space (S002). If the neighbor information memory 46 has anavailable space, then the motion vector calculation unit 55 writes thecalculated motion vector into the neighbor information memory 46.Otherwise, the motion vector calculation unit 55 waits until theneighbor information memory 34 has an available space.

The motion compensation unit 56 obtains a reference image from the framememory 45 by using the calculated motion vector, and then performsmotion compensation calculation such as filtering (S714).

On the other hand, if the target macroblock to be decoded is anintra-picture prediction macroblock (No at S712), then the intra-pictureprediction unit 54 examines whether or not the neighbor informationmemory 46 stores information necessary for intra-picture predictioncalculation (S001). If the neighbor information memory 46 does not storeinformation necessary for intra-picture prediction calculation, then theintra-picture prediction unit 54 waits until the necessary informationis written into the neighbor information memory 46.

On the other hand, if the neighbor information memory 46 storesinformation necessary for intra-picture prediction calculation, then theintra-picture prediction unit 54 performs intra-picture predictioncalculation using the information (S715). The intra-picture predictioncalculation requires neighbor information that is pieces ofreconstructed pixel data nA, nB, nC, and nD as shown in FIG. 32depending on the intra-picture prediction mode. If the neighborinformation memory 46 stores information necessary for intra-pictureprediction calculation, then the intra-picture prediction unit 54performs the intra-picture prediction calculation (S715).

After the motion compensation at S714 or the intra-picture prediction atS715, then the reconstruction unit 53 adds (S716) the prediction imagedata generated by the motion compensation or the intra-pictureprediction to the differential data on which the inverse frequencytransform has been performed, thereby generating a reconstructed image.

Next, the reconstruction unit 53 examines whether or not the neighborinformation memory 46 has an available space (S002). If the neighborinformation memory 46 has an available space, then the reconstructionunit 53 writes the reconstructed image generated in the reconstructionat S716 into the neighbor information memory 46. Otherwise, thereconstruction unit 53 waits until the neighbor information memory 34has an available space.

Next, the deblocking filter unit 57 examines whether or not the neighborinformation memory 46 stores information necessary for deblockingfiltering (S001). If the neighbor information memory 46 does not storeinformation necessary for deblocking filtering, then the deblockingfilter unit 57 waits until the necessary information is written into theneighbor information memory 46.

On the other hand, if the neighbor information memory 46 storesinformation necessary for deblocking filtering, then the deblockingfilter unit 57 performs deblocking filtering by using the information(S717), and then writes the resulting decoded image into the framememory 45.

After the deblocking filtering, the deblocking filter unit 57 examineswhether or not the neighbor information memory 46 has an available space(S002). If the neighbor information memory 46 has an available space,then the deblocking filter unit 57 writes the result of the deblockingfiltering into the neighbor information memory 46. Eventually, the pixeldecoding unit 42 completes the processing.

The processing performed by the pixel decoding unit 43 is the same asthat of the pixel decoding unit 42. Therefore, it will not be describedagain.

This is the description for the processing performed by the imagedecoding device according to the tenth embodiment.

As described above, the image decoding device according to the tenthembodiment can combine the arithmetic coding with the pixel coding.

It should be noted that the image decoding device according to the tenthembodiment may use any arithmetic coding described in theabove-described embodiments.

It should also be noted in the tenth embodiment that the arithmeticcoding method defined by H.264 standard is adopted. However, any othermethod can be adopted as long as the decoding is performed based on thesymbol occurrence probability table or data similar to the symboloccurrence probability table which is adaptively updated depending onimage.

It should also be noted in the tenth embodiment that the image decodingdevice decodes image in units of macroblocks each having 16 pixels×16pixels. However, the image decoding device may decode image in unitseach having 8 pixels×8 pixels, 32 pixels×32 pixels, or 64 pixels×16pixels, for example.

It should also be noted that it has been described in the tenthembodiment that images in a slice are coded in a zigzag order. However,the coding order may be raster order defined by H.264 standard or anyother orders.

It should also be noted in the tenth embodiment that the decoding isbased on H.264 standard, but the decoding may be based on any othersimilar standards.

It should also be noted in the tenth embodiment that the storage unit inwhich data is stored is a memory or buffer, but the storage unit may beany type of a memory. The storage unit may be storage means using anydifferent schemes, such as a flip-flop and a hard disk.

It should also be noted that the image decoding device according to thetenth embodiment may be implemented as a hardware circuit or software ina processor. It should also be noted that the image decoding deviceaccording to the tenth embodiment may be implemented in a plurality ofprocessors or in a single processor.

Although the image coding device and the image decoding device accordingto the present invention have been described with reference to aplurality of embodiments as above, the present invention is not limitedto these embodiments. Those skilled in the art will be readilyappreciated that various modifications and combinations of thestructural elements are possible in the exemplary embodiments. Suchmodifications and combinations are also embodiments of the presentinvention

For example, processing performed by a certain processing unit may beperformed by a different processing unit. Inn addition, an order ofsteps in the processing may be changed. A plurality of the steps may beperformed in parallel.

It should also be noted that the present invention can be implementednot only as the image coding device and the image decoding device, butalso as: a method including steps performed by the image coding deviceand the image decoding device. The present invention can be implementedalso as a program causing a computer to execute the steps in the method.Moreover, the present invention can be implemented also as acomputer-readable recording medium, such as a Compact Disc-Read OnlyMemory (CD-ROM), on which the program is recorded.

It should also be noted that it has been described in theabove-described embodiments that a picture is divided into a pluralityof slices, but a picture may be divided into more common regions.

It should also be noted that it has been described in theabove-described embodiments that the arithmetic coding is performedbased on a symbol occurrence probability table, but the image codingdevice according to the present invention may code image based onprobability information except the symbol occurrence probability table,by using a coding method except the arithmetic coding.

Eleventh Embodiment

FIG. 40A is a block diagram of an image coding device according to theeleventh embodiment. The image coding device 60 shown in FIG. 40Aincludes a first coding unit 61 and a second coding unit 62. The firstcoding unit 61 corresponds to the arithmetic coding unit 1 described inthe above-described embodiments. The second coding unit 62 correspondsto the arithmetic coding unit 2 described in the above-describedembodiments. The image coding device 60 codes a picture having aplurality of regions each including a plurality of blocks.

FIG. 40B is a flowchart of processing performed by the image codingdevice shown in FIG. 40A.

At the beginning, the first coding unit 61 sequentially codes blocksincluded in a first region of the plurality of regions, based on firstprobability information indicating data occurrence probabilities (S811).After coding of a target block to be coded and before coding of a nextblock to be coded, the first coding unit 61 updates the firstprobability information depending on data of the target block.

Next, the second coding unit 62 sequentially codes blocks included in asecond region of the plurality of regions, based on second probabilityinformation indicating data occurrence probabilities (S812). Aftercoding of a target block to be coded and before coding of a next blockto be coded, the second coding unit 62 updates the second probabilityinformation depending on data of the target block.

Furthermore, prior to coding of the first block to be coded, the secondcoding unit 62 updates the second probability information based on thefirst probability information updated by the first coding unit 61.

Thereby, when the first image in a region of a picture is to be coded,the probability information is updated depending on characteristics ofthe image. Therefore, coding efficiency is improved.

FIG. 41A is a block diagram of an image decoding device according to theeleventh embodiment. The image decoding device 70 shown in FIG. 41Aincludes a first decoding unit 71 and a second decoding unit 72. Thefirst decoding unit 71 corresponds to the arithmetic decoding unit 40described in the tenth embodiment. The second decoding unit 72corresponds to the arithmetic decoding unit 41 described in the tenthembodiment. The image decoding device 70 decodes a picture having aplurality of regions each including a plurality of blocks.

FIG. 41B is a flowchart of processing performed by the image decodingdevice shown in FIG. 41A.

At the beginning, the first decoding unit 71 sequentially decodes blocksincluded in the first region of the plurality of regions, based on firstprobability information indicating data occurrence probabilities (S821).After decoding of a target block to be decoded and before decoding of anext block to be decoded, the first decoding unit 71 updates the firstprobability information depending on data of the target block.

Next, the second decoding unit 72 sequentially decodes blocks includedin a second region of the plurality of regions, based on secondprobability information indicating data occurrence probabilities (S822).After decoding of a target block to be decoded and before decoding of anext block to be decoded, the second decoding unit 72 updates the secondprobability information depending on data of the target block.

Furthermore, prior to decoding of the first block to be decoded, thesecond decoding unit 72 updates the second probability information basedon the first probability information updated by the first decoding unit71.

Thereby, the image decoding device according to the tenth embodiment canperform decoding in accordance with the image coding device according tothe tenth embodiment

Twelfth Embodiment

FIG. 42A is a block diagram of an image coding device according to thetwelfth embodiment. The image coding device 60 shown in FIG. 42Aincludes a coding unit 63. The coding unit 63 corresponds to thearithmetic coding unit 1 or 2 described in the above-describedembodiments. The image coding device 60 codes an image including aplurality of blocks.

FIG. 42B is a flowchart of processing performed by the image codingdevice shown in FIG. 42A.

The coding unit 63 codes a plurality of blocks based on probabilityinformation indicating data probability information (S831). After codingof a target block to be coded and before coding of a next block to becoded, the coding unit 63 updates the probability information dependingon data of the target block. Moreover, the coding unit 63 codes thetarget block based on the probability information updated depending ondata of a neighboring block above the target block.

Thereby, the target block is coded depending on the probabilityinformation updated based on the neighboring above block that isspatially close to the target block. Therefore, coding efficiency isimproved.

FIG. 43A is a block diagram of an image decoding device according to thetwelfth embodiment. The image decoding device 70 shown in FIG. 43Aincludes a decoding unit 73. The decoding unit 73 corresponds to thearithmetic decoding unit 40 or 41 described in the tenth embodiment. Theimage decoding device 70 decodes an image including a plurality ofblocks.

FIG. 43B is a flowchart of processing performed by the image decodingdevice shown in FIG. 43A.

The decoding unit 73 decodes a plurality of blocks based on pieces ofprobability information indicating data probability information (S841).After decoding of a target block to be decoded and before decoding of anext block to be decoded, the decoding unit 73 updates the probabilityinformation depending on data of the target block. In addition, thedecoding unit 73 decodes the target block based on probabilityinformation updated depending on data of an immediately-above blockadjacent to the target block.

Thereby, the image decoding device according to the twelfth embodimentcan perform decoding in accordance with the image coding deviceaccording to the twelfth embodiment.

FIG. 44A is a block diagram of an image coding device according to avariation of the twelfth embodiment. The image coding device 60 shown inFIG. 44A further includes a calculation unit 64. The calculation unit 64corresponds to the symbol occurrence probability calculation unit 7described in the above-described embodiments.

FIG. 44B is a flowchart of processing performed by the image codingdevice shown in FIG. 44A.

The calculation unit 64 calculates probability information to be used incoding of a target block to be coded, based on (a) probabilityinformation updated depending on data of a block immediately above thetarget block and (b) probability information updated depending on dataof a block at the immediate left of the target block (S851).

The coding unit 63 codes the target block based on the probabilityinformation calculated by the calculation unit 64 (S852).

Thereby, a block is coded depending on plural pieces of probabilityinformation. Therefore, coding efficiency is further improved.

FIG. 45A is a block diagram of an image decoding device according to avariation of the twelfth embodiment. The image decoding device 70 shownin FIG. 45A further includes a calculation unit 74. The calculation unit74 corresponds to the symbol occurrence probability calculation unit 7described in the above-described embodiments.

FIG. 45B is a flowchart of processing performed by the image decodingdevice shown in FIG. 45A.

The calculation unit 74 calculates probability information to be used indecoding of a target block to be decoded, based on (a) probabilityinformation updated depending on data of a block immediately above thetarget block and (b) probability information updated depending on dataof a block at the immediate left of the target block (S861).

The decoding unit 73 decodes the target block based on the probabilityinformation calculated by the calculation unit 74 (S862).

Thereby, the image decoding device according to the variation of thetwelfth embodiment can perform decoding in accordance with the imagecoding device according to the variation of the twelfth embodiment.

Thirteenth Embodiment

Furthermore, by recording a program, which realizes the image codingmethod and the image decoding method described in each of theembodiments, onto a recording medium, it is possible to easily performthe processing as described in each of the embodiments in an independentcomputer system. The recording medium may be any medium, such as amagnetic disk, an optical disk, a magnet-optical disk, an integratedcircuit (IC) card, and a semiconductor memory, as far as the medium canrecord the program.

Furthermore, the applications of the image coding method and the imagedecoding method described in each of the above embodiments, and a systemusing such applications are described below.

FIG. 46 is a block diagram showing the overall configuration of acontent supply system ex100 for realizing content distribution service.The area for providing communication service is divided into cells ofdesired size, and base stations ex106 to ex110 which are fixed wirelessstations are placed in respective cells.

In this content supply system ex100, various devices such as a computerex111, a Personal Digital Assistant (PDA) ex112, a camera ex113, a cellphone ex114 and a game device ex115 are connected to one another, via atelephone network ex104 and base stations ex106 to ex110. Furthermore,the various devices are connected to the Internet ex101 via an Internetservice provider ex102.

However, the content supply system ex100 is not limited to thecombination as shown in FIG. 46, and may include a combination of any ofthese devices which are connected to each other. Also, each device maybe connected directly to the telephone network ex104, not through thebase stations ex106 to ex110 which are the fixed wireless stations.Furthermore, the devices may be connected directly to one another viaNear Field Communication (NFC) or the like.

The camera ex113 is a device such as a digital video camera capable ofshooting moving images. The camera ex116 is a device such as a digitalvideo camera capable of shooting still images and moving images. Thecell phone ex114 may be any of a cell phone of a Global System forMobile Communications (GSM) system, a Code Division Multiple Access(CDMA) system, a Wideband-Code Division Multiple Access (W-CDMA) system,a Long Term Evolution (LTE) system, a High Speed Packet Access (HSPA)system, a Personal Handy-phone System (PHS), and the like.

In the content supply system ex100, the camera ex113 is connected to astreaming server ex103 via the base station ex109 and the telephonenetwork ex104, which realizes live distribution or the like. In the livedistribution, the coding as described in the above embodiments isperformed for a content (such as a video of a live music performance)shot by a user using the camera ex113, and the coded content is providedto the streaming server ex103. On the other hand, the streaming serverex103 makes steam distribution of the received content data to theclients at their requests. The clients include the computer ex111, thePDA ex112, the camera ex113, the cell phone ex114, the game deviceex115, and the like, capable of decoding the above-mentioned coded data.Each device receiving the distributed data decodes the received data tobe reproduced.

Here, the coding of the data shot by the camera may be performed by thecamera ex113, the streaming server ex103 for transmitting the data, orthe like. Likewise, either the client or the streaming server ex103 maydecode the distributed data, or both of them may share the decoding.Also, the still image and/or moving image data shot by the camera ex116may be transmitted not only to the camera ex113 but also to thestreaming server ex103 via the computer ex111. In this case, either thecamera ex116, the computer ex111, or the streaming server ex103 mayperform the coding, or all of them may share the coding.

It should be noted that the above-described coding and the decoding areperformed by a Large Scale Integration (SLI) ex500 generally included ineach of the computer ex111 and the devices. The LSI ex500 may beimplemented as a single chip or a plurality of chips. It should be notedthat software for coding and decoding images may be integrated into anytype of a recording medium (such as a CD-ROM, a flexible disk and a harddisk) that is readable by the computer ex111 or the like, so that thecoding and decoding are performed by using the software. Furthermore, ifthe cell phone ex114 is a camera-equipped cell phone, it may transmitgenerated moving image data. This moving image data is the data coded bythe LSI ex500 included in the cell phone ex114.

It should be noted that the streaming server ex103 may be implemented asa plurality of servers or a plurality of computers, so that data isdivided into pieces to be processed, recorded, and distributedseparately.

As described above, the content supply system ex100 enables the clientsto receive and reproduce coded data. Thus, in the content supply systemex100, the clients can receive information transmitted by the user, thendecode and reproduce it, so that the user without specific rights norequipment can realize individual broadcasting.

The present invention is not limited to the example of the contentsupply system ex100. At least either the image coding device or theimage decoding device in the above embodiments can be incorporated intothe digital broadcast system ex200 as shown in FIG. 47. Morespecifically, a bit stream of video information is transmitted from abroadcast station ex201 to a communication or broadcast satellite ex202via radio waves. The bitstream is a coded bitstream generated by theimage coding method described in the above embodiments. Upon receipt ofit, the broadcast satellite ex202 transmits radio waves forbroadcasting, and a home antenna ex204 with a satellite broadcastreception function receives the radio waves. A device such as atelevision (receiver) ex300 or a Set Top Box (STB) ex217 decodes thecoded bit stream for reproduction.

The image decoding device described in the above embodiments can beimplemented in a reproduction device ex212 for reading and decoding acoded bit stream recorded on a recording medium ex214 such as a CD andDVD that is a recording medium. In this case, the reproduced videosignals are displayed on a monitor ex213.

The image decoding device or the image coding device described in theabove embodiments can be implemented in a reader/recorder ex218 forreading and decoding a coded bitstream recorded on a recording mediumex215 such as a DVD and a BD or for coding and writing video signalsinto the recording medium ex215. In this case, the reproduced videosignals are displayed on a monitor ex219, and the recording mediumex215, on which the coded bitstream is recorded, allows a differentdevice of system to reproduce the video signals. It is also conceived toimplement the image decoding device in the set top box ex217 connectedto a cable ex203 for cable television or the antenna ex204 for satelliteand/or terrestrial broadcasting so as to reproduce them on a monitorex219 of the television. The image decoding device may be incorporatedinto the television, not in the set top box.

FIG. 48 is a diagram showing a television (receiver) ex300 using theimage decoding method described in the above embodiments. The televisionex300 includes: a tuner ex301 that receives or outputs a bitstream ofvideo information via the antenna ex204, the cable ex203, or the likethat receives the above broadcasting; a modulation/demodulation unitex302 that demodulates the received coded data or modulates generatedcoded data to be transmitted to the outside; and a multiplex/demultiplexunit ex303 that demultiplexes the modulated video data from themodulated voice data or multiplexes the coded video data and the codedvoice data.

In addition, the television ex300 includes: a signal processing unitex306 having (a) a voice signal processing unit ex304 that decodes orcodes voice data and (b) a video signal processing unit ex305 thatdecodes or codes video data; and an output unit ex309 having (c) aspeaker ex307 that outputs the decoded voice signal and (d) a displayunit ex308, such as a display, that displays the decoded video signal.Furthermore, the television ex300 includes an interface unit ex317having an operation input unit ex312 that receives inputs of useroperations, and the like. Moreover, the television ex300 includes: acontrol unit ex310 for the overall controlling of the respective units;and a power supply circuit unit ex311 that supplies the respective unitswith power.

In addition to the operation input unit ex312, the interface unit ex317may include: a bridge ex313 connected to external devices such as thereader/recorder ex218; a slot unit ex314 enabling the recording mediumex216 such as a SD card to be attached to the interface unit ex317; adriver ex315 for connecting to an external recording medium such as ahard disk; a modem ex316 connected to a telephone network; and the like.It should be noted that the recording medium ex216 enables informationto be electrically recorded on a stored nonvolatile/volatilesemiconductor memory device.

The units in the television ex300 are connected to one another via asynchronous bus.

First, the description is given for the structure by which thetelevision ex300 decodes and reproduces data received from the outsidevia the antenna ex204 or the like. The television ex300 receives a useroperation from a remote controller ex220 or the like. Then, under thecontrol of the control unit ex310 having a CPU and the like, thetelevision ex300 demodulates video data and voice data at themodulation/demodulation unit ex302, and demultiplexes the demodulatedvideo data from the demodulated voice data at the multiplex/demultiplexunit ex303. In addition, the television ex300 decodes the demultiplexedvoice data at the voice signal processing unit ex304, and decodes thedemultiplexed video data at the video signal processing unit ex305 usingthe decoding method described in the above embodiments. The decodedvoice signal and the decoded video signal are separately outputted fromthe output unit ex309 to the outside. When outputting the signals, thesignals may be temporarily accumulated in, for example, buffers ex318and ex319, so that the voice signal and the video signal are reproducedin synchronization with each other. Furthermore, the television ex300may read the coded bitstream, not from broadcasting or the like but fromthe recording media ex215 and ex216 such as a magnetic/optical disk anda SD card.

Next, the description is given for the structure by which the televisionex300 codes voice signal and video signal, and transmits the codedsignals to the outside or writes them onto a recording medium or thelike. The television ex300 receives a user operation from the remotecontroller ex220 or the like, and then, under the control of the controlunit ex310, codes voice signal at the voice signal processing unitex304, and codes video data at the video signal processing unit ex305using the coding method described in the above embodiments. The codedvoice signal and the coded video signal are multiplexed at themultiplex/demultiplex unit ex303 and then outputted to the outside. Whenmultiplexing the signals, the signals may be temporarily accumulated in,for example, buffers ex320 and ex321, so that the voice signal and thevideo signal are in synchronization with each other.

It should be noted that the buffers ex318 to ex321 may be implemented asa plurality of buffers as shown, or may share one or more buffers. Itshould also be noted that, besides the shown structure, it is possibleto include a buffer, for example, between the modulation/demodulationunit ex302 and the multiplex/demultiplex unit ex303, so that the bufferserves as a buffer preventing system overflow and underflow, and therebyaccumulate data in the buffer.

It should also be noted that, in addition to the structure for receivingvoice data and video data from broadcasting, recording media, and thelike, the television ex300 may also have a structure for receiving audioinputs from a microphone and a camera, so that the coding is preformedfor the received data. Here, although it has been described that thetelevision ex300 can perform the above-described coding, multiplexing,and providing to the outside, it is also possible that the televisionex300 cannot perform all of them but can perform one of the coding,multiplexing, and providing to the outside.

It should be noted that, when the reader/recorder ex218 is to read orwrite a coded bitstream from/into a recording medium, either thetelevision ex300 or the reader/recorder ex218 may perform theabove-described decoding or coding, or the television ex300 and thereader/recorder ex218 may share the above-described decoding or coding.

For one example, FIG. 49 shows a structure of an informationreproducing/recording unit ex400 in the case where data is read from orwritten into an optical disk. The information reproducing/recording unitex400 includes the following units ex401 to ex407.

The optical head ex401 writes information into the recording mediumex215 as an optical disk by irradiating laser spot on a recordingsurface of the recording medium ex215, and reads information from therecording medium ex215 by detecting light reflected on the recordingsurface of the recording medium ex215. The modulation recording unitex402 electrically drives a semiconductor laser included in the opticalhead ex401, and thereby modulates laser light according to recordeddata. A reproduction demodulation unit ex403 amplifies reproductionsignal that is obtained by electrically detecting light reflected on therecording surface by a photo detector included in the optical headex401, then demultiplexes and demodulates signal components recorded onthe recording medium ex215, and reproduces necessary information. Abuffer ex404 temporarily holds the information to be recorded onto therecording medium ex215, and the information reproduced from therecording medium ex215. A disk motor ex405 rotates the recording mediumex215. A servo control unit ex406 moves the optical head ex401 to apredetermined information track while controlling rotation driving ofthe disk motor ex405, thereby performing tracking processing of thelaser spot.

The system control unit ex407 controls the overall informationreproducing/recording unit ex400. The above-described reading andwriting are realized when the system control unit ex407 records andreproduces information via the optical head ex401 while cooperating themodulation recording unit ex402, the reproduction demodulation unitex403, and the servo control unit ex406, by using various informationstored in the buffer ex404 and new information generated and added asneeded. The system control unit ex407 includes, for example, amicroprocessor, and performs the above processing by executing areading/writing program.

Although it has been described above that the optical head ex401irradiates laser spot, the optical head ex401 may perform higher-densityrecording by using near-field light.

FIG. 50 shows a schematic diagram of the recording medium ex215 that isan optical disk. On the recording surface of the recording medium ex215,guide grooves are formed in a spiral shape, and on an information trackex230, address information indicating an absolute position on the diskis previously recorded using a change of the groove shape. The addressinformation includes information for identifying a position of arecording block ex231 that is a unit for recording data, and a deviseperforming recording and reproduction is capable of specifying therecording block by reproducing the information track ex230 to read theaddress information. Moreover, the recording medium ex215 includes adata recording region ex233, an inner periphery region ex232, and anouter periphery region ex234. The data recording region ex233 is aregion on which user data is recorded. The inner periphery region ex232and the outer periphery region ex234 which are provided in the innerperiphery and the outer periphery, respectively, of the data recordingregion ex233 are for specific uses except the user data recording.

The information reproducing/recording unit ex400 reads/writes codedvoice data and video data or coded data generated by multiplexing them,from/into such data recording region ex233 of the recording mediumex215.

Although the above has been described giving the example of a one-layeroptical disk such as a DVD or a BD, the optical disk is not limited tothe above but may be a multi-layer optical disk so that data can berecorded onto other regions in addition to the surface. Furthermore, theoptical disk may have a structure for multidimensionalrecording/reproducing, such as data recording using color lights havingvarious different wavelengths on the same position of the disk, orrecording of layers of different pieces of information from variousangles.

It should also be noted that it is possible in the digital broadcastingsystem ex200 that the vehicle ex210 having the antenna ex205 receivesdata from the satellite ex202 or the like, and reproduces moving imageson the display device such as the vehicle navigation system ex211 or thelike in the vehicle ex210. As for the configuration of the vehiclenavigation system ex211, a configuration added with a GPS receiving unitto the units as shown in FIG. 48, is conceivable. The same applies tothe computer ex111, the cell phone ex114 and others. Moreover, like thetelevision ex300, three types of implementations can be conceived for aterminal such as the above-mentioned cell phone ex114: a communicationterminal equipped with both an encoder and a decoder; a sending terminalequipped with an encoder only; and a receiving terminal equipped with adecoder only.

Thus, the image coding method and the image decoding method described inthe above embodiments can be used in any of the above-described devicesand systems, and thereby the effects described in the above embodimentscan be obtained.

It should be noted that the present invention is not limited to theabove embodiments but various variations and modifications are possiblein the embodiments without departing from the scope of the presentinvention.

Fourteenth Embodiment

In the fourteenth embodiment, the image coding device according to thefirst embodiment is typically implemented into a Large Scale Integration(LSI) which is an integrated circuit. FIG. 51 shows the fourteenthembodiment. The bitstream buffers 24 and 25 and the frame memory 23 areimplemented into a DRAM and the other circuits and memories areimplemented into the LSI.

These may be integrated separately, or a part or all of them may beintegrated into a single chip. Here, the integrated circuit is referredto as a LSI, but the integrated circuit can be called an IC, a systemLSI, a super LSI or an ultra LSI depending on their degrees ofintegration.

The technique of integrated circuit is not limited to the LSI, and itmay be implemented as a dedicated circuit or a general-purposeprocessor. It is also possible to use a Field Programmable Gate Array(FPGA) that can be programmed after manufacturing the LSI, or areconfigurable processor in which connection and setting of circuitcells inside the LSI can be reconfigured.

Furthermore, if due to the progress of semiconductor technologies ortheir derivations, new technologies for integrated circuits appear to bereplaced with the LSIs, it is, of course, possible to use suchtechnologies to implement the functional blocks as an integratedcircuit. For example, biotechnology and the like can be applied to theabove implementation.

Moreover, the semiconductor chip on which the image decoding deviceaccording to the embodiments is combined with a display for drawingimages to form an image drawing device depending on variousapplications. The present invention can thereby be used as aninformation drawing means for a mobile phone, a television set, adigital video recorder, digital camcorder, a vehicle navigation device,and the like. The display in the combination may be a cathode-ray tube(CRT), a flat display such as a liquid crystal display, a plasma displaypanel (PDP), or an organic light emitting display (OLED), a projectiondisplay represented by a projector, or the like.

It should also be noted that the LSI according to the fourteenthembodiment may perform coding and decoding in cooperation with abitstream buffer on which coded streams are accumulated and a DynamicRandom Access Memory (DRAM) including a frame memory on which images areaccumulated. The LSI according to the fourteenth embodiment may becooperated not with a DRAM, but with a different storage device such asan embedded DRAM (eDRAM), a Static Random Access Memory (SRAM), or ahard disk.

Fifteenth Embodiment

In the fifteenth embodiment, the image coding device, the image decodingdevice, the image coding method, and the image decoding method whichhave been described in the above embodiments are typically implementedinto a Large Scale Integration (LSI) which is an integrated circuit. Asone example, FIG. 52 shows a structure of a LSI ex500 on which they areintegrated into a single chip. The LSI ex500 includes the followingunits ex502 to ex509 which are connected to one another via a bus ex510.When a power source is ON, a power supply circuit unit ex505 suppliespower to the respective units to activate them to be capable ofoperating.

For example, in the case of coding, the LSI ex500 receives inputaudio/visual (AV) signals from an AV I/O ex509 via the microphone ex117,the camera ex113, or the like. The input AV signals are temporarilyaccumulated in an external memory ex511 such as a SDRAM. The accumulateddata is, for example, divided into a plurality of times depending on aprocessing amount and a processing speed, and eventually provided to asignal processing unit ex507. The signal processing unit ex507 performscoding of voice signal and/or coding of video signal. Here, the codingof video signal is the coding described in the above embodiments.Furthermore, the signal processing unit ex507 performs multiplexing ofthe coded voice data and the coded video data and other processing asneeded, and provides the resulting data from a stream I/O ex504 to theoutside. The output bitstream is transmitted to the base station ex107,or written to the recording medium ex215.

Moreover, for example, in the case of decoding, under the control of themicrocomputer ex502, the LSI ex500 temporarily accumulates, to a memoryex511 or the like, coded data that is obtained using the stream I/Oex504 via the base station ex107, or coded data that is obtained byreading it from the recording medium ex215. Under the control of themicrocomputer ex502, the accumulated data is, for example, divided intoa plurality of times depending on a processing amount and a processingspeed, and eventually provided to the signal processing unit ex507. Thesignal processing unit ex507 performs decoding of voice signal and/ordecoding of video signal. Here, the decoding of video signal is thedecoding described in the above embodiments. It is preferable that thedecoded voice signal and the decoded video signal are temporarilyaccumulated in the memory ex511 or the like as needed, so that they canbe reproduced in synchronization with each other. The decoded outputsignal is outputted from the AV I/O ex509 to the monitor ex219 or thelike appropriately via the memory ex511 or the like. The access to thememory ex511 is actually performed via the memory controller ex503.

Although it has been described above that the memory ex511 is outsidethe LSI ex500, the memory ex511 may be included in the LSI ex500. It ispossible that the LSI ex500 may be integrated into a single chip, or maybe integrated separately.

Here, the integrated circuit is referred to as a LSI, but the integratedcircuit can be called an IC, a system LSI, a super LSI or an ultra LSIdepending on their degrees of integration.

The technique of integrated circuit is not limited to the LSI, and itmay be implemented as a dedicated circuit or a general-purposeprocessor. It is also possible to use a Field Programmable Gate Array(FPGA) that can be programmed after manufacturing the LSI, or areconfigurable processor in which connection and setting of circuitcells inside the LSI can be reconfigured.

Furthermore, if due to the progress of semiconductor technologies ortheir derivations, new technologies for integrated circuits appear to bereplaced with the LSIs, it is, of course, possible to use suchtechnologies to implement the functional blocks as an integratedcircuit. For example, biotechnology and the like can be applied to theabove implementation.

The image coding method in the present invention can be used for variousapplications. For example, the present invention can be used and highlyuseful in high-resolution information display devices and imagecapturing devices, such as television sets, digital video recorders,vehicle navigation devices, mobile phones, digital cameras, digitalcamcorders, and the like.

The invention claimed is:
 1. An image decoding method of decoding animage having a plurality of blocks, said image decoding methodcomprising decoding the blocks sequentially based on probabilityinformation indicating a data occurrence probability, wherein, in saiddecoding, the probability information is updated depending on data of afirst target block to be decoded among the blocks, after decoding thefirst target block and before decoding a second target block to bedecoded next among the blocks, and wherein, in said decoding, a thirdtarget block in the blocks is decoded based on the probabilityinformation (i) which is updated depending on the data of the firsttarget block, the first target block being a neighboring block above thethird target block and (ii) which is not updated depending on the dataof the second target block, and wherein the third target block (i) islocated on a left end of the image, (ii) is different from the secondtarget block, and (iii) is decoded after decoding the first targetblock.